思想

"快速排序"的思想很简单,整个排序过程只需要三步:

(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
1.1k 声望34 粉丝

前端