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,321评论 0 6
  • Top_Chenxi阅读 369评论 0 0
  • 首先了解什么是快速排序。 1、找到一个基准值(一般是中间位)2、然后将数组的值与基准值比较,分为两个数组(比基准值...
    TsingXu阅读 355评论 0 0
  • 从数组中选取一个数据作为基准,一般默认数组中第一个数据,然后比基准小的放到左侧,比基准大的放到右侧完成第一轮后分割...
    夜雨声烦人阅读 694评论 0 4
  • 今天阅读了一部分《没有任何借口》这本书,让我更深的意识到自律的重要性,少说多做,少抱怨多做事。晚上读了《风之王》让...
    羽一教育賀志春阅读 280评论 0 0