<script>
var arr = [6, 8, 34, 9, 65, 43, 2];
function quickSort(arr) {
//arr: 被排序的数组
//如果数组长度小于等于1
if (arr.length <= 1) {
return arr;
}
//随机在arr数组取一个元素作为基准值
var randomIndex = Math.floor(Math.random() * arr.length);
var base = arr.splice(randomIndex, 1);
//按照升序排序
//如果元素比基准值小, 将该元素放在before
//如果元素比基准值大, 将该元素放在after
//保存左边的元素
var before = [];
//保存右边的元素
var after = []
for (var i = 0; i < arr.length; i++) {
if (base[0] >= arr[i]) {
before.push(arr[i]);
} else {
after.push(arr[i]);
}
}
//递归重复查找, 直到数组剩下一个元素或者空组件, 则终止查找, 最后把所有数组连接在一起
return quickSort(before).concat(base, quickSort(after));
}
var result = quickSort(arr);
console.log('result ==> ', result);
</script>
结果: