快速排序算法

Posted chenyi4

tags:

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

先来显示一下它的过程

1.给一个数组 10,22,3,90,8,6 从小到大 快速排序

2.选取它的第一个值作为flag 其他数组以此做排序,比它大的放右边,比它小的放左边。[10, 22, 3, 90, 8, 6] => 3, 8, 6 10 22, 90

3.上一步得到的数组是 3, 8, 6  10  22, 90 ,接下来对 左边,和右边的两个数组,进行类似的排序。

 [ 3,8,6 ] 10 [ 22, 90 ] => [3, 8,6 ] 10 [ 22 , 90] ,

4.上面一步得到 [3, 8,6 ] 10 [ 22 , 90] ,下面对 里面的 8, 6 排序,90只有一个值,不用排序了。

[3, 8,6 ] 10 [ 22 , 90] =>  [3, 6, 8 ] 10 [ 22 , 90] .结束 这样就得出 最后结果

 

 

写法

 var arr = [10, 22, 3, 90, 8, 6];
    function sort(arr)
        if(arr.length <= 1) return arr;
        var middle = arr[0];
        var left = [];
        var right = [];
        for(var i = 1; i < arr.length; i++)
            if(arr[i] < middle)
                left.push(arr[i]);
            
            if(arr[i] > middle)
                right.push(arr[i]);
            
        
        return sort(left).concat(middle).concat(sort(right));
    

    console.log(sort(arr));

  

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

十大经典排序算法总结(快速排序)

排序算法系列:快速排序算法

用C语言编程实现快速排序算法

快速选择算法(Quick Selection)

Python实现排序算法之快速排序

快速排序算法原理与实现