package sortimport "fmt"func KuaiPai() {// 左右两边QuickSort(0, len(li)-1)fmt.Println(li)}var li = []int{3, 2, 9, 1, 4, 5, 12, 10}// 左右两边都进行查询,右边先开始,左边后开始func QuickSort(left, right int) {// 右边都数一定要大于左边都数if left >= right {return}i := leftj := right// 设置基准数temp := li[left]for i != j {// 右边检测大于基准数都值for li[j] >= temp && j > i {j--}// 左边都值小于基准数都值for li[i] <= temp && i < j {i++}// 如果检测if i < j {li[i], li[j] = li[j], li[i]}}// 如果右边走完都话,左边就没有任何意义li[left] = li[i]li[i] = tempQuickSort(left, i-1) //继续处理左边的,这里是一个递归的过程QuickSort(i+1, right) //继续处理右边的 ,这里是一个递归的过程}
参考地址:
