Nodejs 之快速排序

快速排序使用非常官方,算法也相对简单,借助分治思想,将数据进行拆分,而后进行两侧对比排序。

实现方法如下:

``` var data = [321,3,12,45,22,77,90,12,1,32,34,65,78,25,85,24,96];

function p(arr,l,r) { if(l>r) { return; }

var i=l;
var j=r;
var t=0;
var temp=0;

temp = arr[l];
while(i!=j)
{
    while(arr[j]>=temp && i<j)
    {
        j--;
    }
    while(arr[i]<=temp && i<j)
    {
        i++;
    }
    if(i<j)
    {
        t=arr[i];
        arr[i] = arr[j];
        arr[j] = t;
    }
}
arr[l] = arr[i];
arr[i] = temp;
p(arr,l,r-1);
p(arr,l+1,r);

}

console.log(data); p(data,0,data.length-1); console.log(data); ```

运行打印结果

[ 321, 3, 12, 45, 22, 77, 90, 12, 1, 32, 34, 65, 78, 25, 85, 24, 96 ]
[ 1, 3, 12, 12, 22, 24, 25, 32, 34, 45, 65, 77, 78, 85, 90, 96, 321 ]