从数组中取出一个数,称之为基数(pivot)
遍历数组,将比基数大的数字放到它的右边,比基数小的数字放到它的左边
遍历完成后,数组被分成了左右两个区域
将左右两个区域视为两个数组,重复前两个步骤,直到排序完成
实现...- 1)
QuickSort(arr, m + 1, q)
return arr
}
// 划分函数
function partition(arr, p, q){
// 重点是划分函数的实现...arr, 6, 6)(跳过) 和 QuickSort(arr, 8, 8)(跳过)
返回数组 [2, 9, 15, 18, 21, 22, 31, 33, 44] 完成排序
优化角度
分析上面三个版本的实现