/// 快速排序funcSort(a []int, lo, hi int){if hi <= lo {return}
j :=Partion(a, lo, hi)Sort(a, lo, j-1)Sort(a, j+1, hi)}funcPartion(a []int, lo, hi int)int{
v := a[lo]
i := lo
j := hi
//array := []int{7,1,100, 88,3,2,8,9,4,5,6}for{for i++;Less(a[i], v); i++{if i == hi {break}}for;Less(v, a[j]); j--{if j == lo {break}}if i > j {break}Exchange(a, i, j)}ReInsert(a, lo, j)
fmt.Println(a, i, j)return j
}funcLess(i, j int)bool{return i < j
}funcExchange(a []int, i, j int){
item := a[j]
a[j]= a[i]
a[i]= item
}// i < j 把 i 插入都 j 的 位置funcReInsert(a []int, i, j int){
x := i
item := a[i]for; x<j; x++{
a[x]= a[x+1]}
a[j]= item
} 查找 a[0] 应该在的位置,并把比 a[0] 小的放在//func FindRealIndex(a []int, index int) int {////}/// 插入排序// j 插入 i 的位置funcInsert(a []int, i, j int){if j < i {return}
item := a[j]for x := j; x > i; x--{
a[x]= a[x-1]}
a[i]= item
}// 查找最高 hight 应该在的位置funcFindIndex(a []int, hight int)int{
index := hight
for i :=0; i < hight; i++{if a[i]< a[hight]{continue}else{
index = i
break}}return index
}