快速排序算法测试

随机生成个0-10000的数字:

运行结果:

源码


function quickSort(arr, start, end) {
    if (arr == null || arr.length == 0) {
        return null;
    }

    start = start || 0;
    end = end || arr.length - 1;

    var i = start;
    var j = end;

    while (i < j) {
        while (arr[i] <= arr[j] && i < j) {
            j--;
        }

        // 找出比arr[i]小的值
        // 两个数交换位置
        if (i < j) {

            var temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;

        }

        while (arr[i] < arr[j] && i < j) {
            i++;
        }

        // 找出比arr[j]大的值
        // 交换位置
        if (i < j) {

            var temp = arr[j];
            arr[j] = arr[i];
            arr[i] = temp;

        }
    }

    if (i - start > 1) {
        quickSort(arr, 0, i - 1);
    }

    if (end - j > 1) {
        quickSort(arr, j + 1, end);
    }
}