// 快速排序
// 快速排序使用分治法把一个串(list)分为两个子串(sub-lists)。具体算法实现
// 1.从数组中挑出一个元素,成为基准
// 2.重新排列数组,所有元素比基准值小的摆放在基准前面,所有元素比基准大的摆在基准后面(相同的可以任意一边
// 这个分区退出之后,该基准就处于数列的中间位置。成为分区操作
// 3.递归的把小于基准值元素的子数列和大于基准值元素的子数列排序
var quickSort = function(arr) {
if (arr.length <= 1) { return arr; }
var pivotIndex = Math.floor(arr.length / 2);
var pivot = arr.splice(pivotIndex, 1)[0];
var left = [];
var right = [];
for (var i = 0; i < arr.length; i++){
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quickSort(left).concat([pivot], quickSort(right));
};
const arr = [91, 60, 96, 7, 35, 65];
console.log(quickSort(arr));
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。