NameCHC 2019-12-10
具体过程:黑色标记代表左指针,红色标记代表右指针,蓝色标记代表中间值。(依次从左往向下)
//QuickSort 快速排序 func QuickSort(left int, right int, arr *[7]int) { l := left r := right pivot := arr[(left+right)/2] tmp := 0 for l < r { for arr[l] < pivot { l++ } for arr[r] > pivot { r-- } if l >= r { break } tmp = arr[l] arr[l] = arr[r] arr[r] = tmp if arr[l] == pivot { r-- } if arr[r] == pivot { l++ } } if l == r { l++ r-- } if left < r { QuickSort(left, r, arr) } if right > l { QuickSort(l, right, arr) } }