快速排序
<script>
function quickSort(arr) {
var len = arr.length; //数组长度 2
if (len <= 1) {
return arr; //数组里有1个元素或0个元素,直接返回
}
var i = Math.floor(len / 2); //查找中间元素的索引号
var middle = arr.splice(i, 1)[0]; //基准元素 中间元素
var left = [],
right = []; //声明两个空数组盛放的数值
for (var j = 0; j < arr.length; j++) {
if (arr[j] >= middle) { //比middle 值大的放到right内部
right.push(arr[j]);
} else {
left.push(arr[j]); //比middle值小的放到left数组内部
}
}
left = quickSort(left); //递归调用
right = quickSort(right);
return left.concat(middle, right);
}
var myarr = [10, 8, 9, 5, 3]
console.log(quickSort(myarr))
</script>