疾速排序头脑及完成

头脑

“疾速排序”的头脑很简单,全部排序历程只需要三步:

(1)在数据集当中,找一个基准点

(2)竖立两个数组,离别存储左侧和右侧的数组

(3)应用递归举行下次比较

JS完成

var needSortArr = [12, 23, 45, 11, 2, 55, 12, 1];
function quickSort (arr) {
    if (arr.length <= 1) {
        return arr;         //假如数组只要一个数,就直接返回;
    }
    var num = Math.floor(arr.length / 2),        //找到中间数的索引值,假如是浮点数,则向下取整
        numberOfCenter = arr.splice(num, 1),     //找到中间数的值
        left = [], right = [];
    for(var i = 0; i < arr.length; i++) {
        if (arr[i] < numberOfCenter) {
            left.push(arr[i]);
        } else {
            right.push(arr[i]);
        }
    }
    return quickSort(left).concat([numberOfCenter], quickSort(right));
}
alert(quickSort(needSortArr));
    原文作者:wuweisen
    原文地址: https://segmentfault.com/a/1190000007224652
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞