JS快速排序

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <script type="text/javascript">
            var mySort = function(arr) {
                if(arr.length <= 1) {
                    return arr;
                }
                var p1 = Math.floor(arr.length / 2);  /*p1為一個數組里選的基準*/
                var p2 = arr.splice(p1, 1)[0];  /*取出基準對應數組中的元素*/
                var left = [];  /*左邊的數組*/
                var right = [];  /*右邊的數組*/
                for(var i = 0; i < arr.length; i++) {
                    if(arr[i] <p2) {
                        left.push(arr[i]);  /*放入left數組*/
                    } else {
                        right.push(arr[i]);  /*放入right數組*/
                    }
                }
                return mySort(left).concat([p2], mySort(right));  /*把left數組+p2+right數組進行拼接*/
            }
            alert(mySort([2,1,4,6,7]));
        </script>
    </body>
</html>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • tips:接下去會在github寫博客,簡書不再更新和修改文章,歡迎大家逛逛我的新博客點擊查看 ,我會盡量用更容易...
    aermin閱讀 3,312評論 0 6
  • Top_Chenxi閱讀 363評論 0 0
  • 首先了解什么是快速排序。 1、找到一個基準值(一般是中間位)2、然后將數組的值與基準值比較,分為兩個數組(比基準值...
    TsingXu閱讀 355評論 0 0
  • 從數組中選取一個數據作為基準,一般默認數組中第一個數據,然后比基準小的放到左側,比基準大的放到右側完成第一輪后分割...
    夜雨聲煩人閱讀 689評論 0 4
  • 今天閱讀了一部分《沒有任何借口》這本書,讓我更深的意識到自律的重要性,少說多做,少抱怨多做事。晚上讀了《風之王》讓...
    羽一教育賀志春閱讀 280評論 0 0