js实现的快速排序算法

var quickSort = function (array) {
    quick(array, 0, array.length - 1)
    return array;
}
var quick = function (array, left, right) {
    var index;
    if (array.length > 1) {
        index = partition(arr, left, right);
        if (left < index - 1) {
            quick(array, left, index - 1);
        }
        if (index < right) {
            quick(array, index, right);
        }
    }
}
var partition = function (array, left, right) {
    var pivot = array[Math.floor((right + left) / 2)];
    var i = left;
    var j = right;
    while (i <= j) {
        while (array[i] < pivot) {
            i++;
        }
        while (array[j] > pivot) {
            j--;
        }
        if (i <= j) {
            swapQuickSort(array, i, j);
            i++;
            j--;
        }
        return i;
    }
}

function swapQuickSort(array,index1, index2) {
    var temp = array[index1];
    array[index1] = array[index2];
    array[index2] = temp;
}

var arr = [1, 6, 2, 5, 9, 2, 0];
console.log(arr.toString());
console.log(quickSort(arr).toString());

猜你喜欢

转载自blog.csdn.net/mangxi8200/article/details/81148788
今日推荐