码迷,mamicode.com
首页 > 编程语言 > 详细

快速排序

时间:2018-07-11 00:59:19      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:UNC   cti   alert   fun   quicksort   splice   lse   排序   ++   

 

/*
快排算法描述
1.找基准点。
2.建立两个空数组。
3.arr中大于基准点放left,则反之。
4.left,基准点,right连接起来。
*/


function quicksort(arr) {                                              //参数类型:数组;返回值,数组。
        if (arr.length <= 1) {
            return arr;
        }
        var equally = Math.floor(arr.length / 2);                      //arr中间索引
        var benchmark = arr.splice(equally,1);                         //arr中间值
        var left = [];
        var right = [];
        for (var i = 0,len = arr.length; i < len; i++) {
            if (arr[i] < benchmark) {
                left.push(arr[i]);
            } else {
                right.push(arr[i]);
            }
        }
        return quicksort(left).concat([benchmark],quicksort(right));    //不断递归,最后都递归为一个数,然后拼接数组,返回排完序数组。
    }
    alert(quicksort([21,81,12,85,31,97,18,2,87,75,3]));      //output:2,3,12,18,21,31,75,81,85,87,97

  

 

快速排序

标签:UNC   cti   alert   fun   quicksort   splice   lse   排序   ++   

原文地址:https://www.cnblogs.com/Longhua-0/p/9292227.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!