快速排序是一种高效的排序算法,由 Tony Hoare 在 1960 年提出。它采用了分治策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个子序列。
以下是快速排序算法的基本步骤:
1、选择基准:从数组中选择一个元素作为“基准”(pivot)。
2、分区:重新排列数组,所有比基准小的元素摆放在基准前面,所有比基准大的元素摆在基准后面。在这个分区退出之后,该基准就处于数组的中间位置。
3、递归排序:递归地将小于基准的子数组和大于基准的子数组排序。
- function quickSort(arr) {
- if (arr.length <= 1) return arr;
- const num = arr[0];
- let left = [],
- right = [];
- for (let i = 1; i < arr.length; i++) {
- if (arr[i] <= num) left.push(arr[i]);
- else right.push(arr[i]);
- }
- return quickSort(left).concat([num], quickSort(right));
- }
- console.log("11", quickSort([6, 2, 66, 4, 88, 3]));
选择数组中的一个值作为基准,将数组中小于该值的数置于该数之前,大于该值的数置于该数之后,接着对该数前后的两个数组进行重复操作直至排序完成。