快速排序(javascript版本)

Posted 等风来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速排序(javascript版本)相关的知识,希望对你有一定的参考价值。

基本过程

1. 选取数组中的一个元素作为基准(pivot)

2. 按照基准将数组分区,左区全部小于基准,右区全部大于基准,使用方法为原地置换(swap in place)

3. 对左右分区递归使用1和2步,直至左右分区只有一个或零个元素,排序完成

javascript实现

function fQuickSort(arr,low,high) {
    if(low >= high){
        throw new Error(‘low should less than high‘);
    }
    var pivotIndex = fSwapInPlace(arr,low,high);
    fQuickSort(arr,low,pivotIndex-1);
    fQuickSort(arr,pivotIndex+1,high);
}

function fSwapInPlace(arr,low,high){
    var pivot = arr[low];
    while (low < high) {
        while(low < high && arr[high] > pivot){
            high--;
        }
        arr[low] = arr[high];
        while(low < high && arr[low] <= pivot){
            low++;
        }
        arr[high] = arr[low];
    }
    arr[low] = pivot;
   //stop at pivot place,low equals pivot index
    return low;
}

 

以上是关于快速排序(javascript版本)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用sublime代码片段快速输入PHP头部版本声明

快速排序算法的 JavaScript 实现

JavaScript算法(归并排序与快速排序)

javascript 快速排序

前端开发工具vscode如何快速生成代码片段

前端开发工具vscode如何快速生成代码片段