【快速排序】
思路:
(1)在数据集之中,选择一个元素作为"基准"(pivot)。
(2)所有小于"基准"的元素,都移到"基准"的左边;所有大于"基准"的元素,都移到"基准"的右边。
(3)对"基准"左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。
用js实现快速排序=>
<!DOCTYPE html>
<html>
<head>
<title>快速排序</title>
</head>
<script>
function QuickSort(arr) {
var mark = arr[0];//设置第一个为基准值
var leftArr =[];
var rightArr =[];
if(arr.length <= 1) {
return arr;
} else {
for(var i=1 ; i<arr.length; i++) {
if(arr[i] <= mark) {
leftArr.push(arr[i]);
} else {
rightArr.push(arr[i])
}
}
}
return QuickSort(leftArr).concat([mark], QuickSort(rightArr))
}
console.log(QuickSort([5,15,7,88,1,5,12,48,6,68,19]))
//[1, 5, 5, 6, 7, 12, 15, 19, 48, 68, 88]
</script>
<body>
<h6>快速排序</h6>
</body>
</html>