javascript [快速排序] #javascript
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript [快速排序] #javascript相关的知识,希望对你有一定的参考价值。
function quicksort(arr) {
// => 如果传递进来的数组只有一项或者是空的,我们则不再继续取中间项拆分
if (arr.length <= 1) {
return arr;
}
//-> 获取中间项的索引:把中间项的值获取到,在原有数组中删除中间项
var centerIndex = Math.floor(arr.length / 2),
centerValue = arr.splice(centerIndex, 1)[0]; // => splice返回的是个数组,数组中包含了删除的那个内容
// ==> 用剩余数组中的每一项和中间项进行比较,比中间项大的放在右边,比他小的放在左边(左右两边的都是数组)
var arrLeft = [],
arrRight = [];
for (let i = 0; i < arr.length; i++) {
let cur = arr[i];
cur < centerValue ? arrLeft.push(cur) : arrRight.push(cur);
}
return quicksort(arrLeft).concat(centerValue, quicksort(arrRight));
}
console.log(quicksort([12,15, 14, 13, 16, 11]));
以上是关于javascript [快速排序] #javascript的主要内容,如果未能解决你的问题,请参考以下文章
javascript实现快速排序算法
JavaScript实现快速排序
JavaScript实现快速排序
JavaScript排序算法——快速排序
JavaScript实现快速排序算法
js冒泡排序法——选择排序(other)——计数排序(桶排序)——快速排序——插入排序-更新