通过JS实现快速排序
基本思想:
- 给定一个数组
arr = [23, 45, 2, 65, 12, 12, 88, 38, 1]
,通过快速排序算法实现从小到大的排序。
- 先获取数组第一个元素,作为比较的基数。
- 大于基数的数将其push到一个新的数组中,小于基数的也push到一个新数组中。
- 在通过递归重新对两个新组数进行排序。
- 最后通过
concat()
函数将两个新数组和基数连接。
let arr = [23, 45, 2, 65, 12, 12, 88, 38, 1];
function quickSort(arr){
let base_num = arr[0];
let left_num = arr[];
let right_num = arr[];
for(let i=1;i<arr.length;i++){
if(arr[i]<base_num)left_num.push(arr[i]);
else right_num.push(arr[i]);
}
if(left_num.length>=2) left_num = quickSort(left_num);
if(right_num.length>=2) right_num = quickSort(right_num);
return left_num.concat(base_num,right_num);
}
quickSort(arr);
console.log(quickSort(arr));