1、用JS手写快速排序
快排三步曲:
(1)在数据集之中,选择一个元素作为“基准”(pivot)。
(2)所有小于“基准”的元素,都移到“基准”的左边;所有大于“基准”的元素,都移到“基准”的右边。
(3)对"基准"左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。
var arr = [55, 66, 18, 10, 20, 30, 1, 2, 3, 12, 2];
var result = quickSort(arr);
console.log('结果: ' + result);
function quickSort(tempArr) {
if (tempArr.length <= 1) {
return tempArr;
}
//第一步取基准值
var midIndex = Math.floor(tempArr.length / 2);
var midValue = tempArr.splice(midIndex, 1);
console.log(midValue);
//第二步分左右
var left = [];
var right = [];
for (var i = 0; i