码迷,mamicode.com
首页 > 其他好文 > 详细

关于快速排序

时间:2014-09-06 17:17:33      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   ar   for   div   cti   sp   

常用

1.sort()方法:

var a = [5,29,23,37,27,44];
function sortNum(a,b){
        return a-b;    
    }
alert(a.sort(sortNum));
  • 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
  • 若 a 等于 b,则返回 0。
  • 若 a 大于 b,则返回一个大于 0 的值。

2.

var a = [5,29,23,37,27,44];
    function quickSort(arr){
        if(arr.length <=1){
            return arr;    
        }
        var num = Math.floor(arr.length/2);
        var numValue = arr.splice(num,1);
        var left = [];
        var right = [];
        for(var i =0,len=arr.length;i<len;i++){
            if(arr[i]<numValue){
                left.push(arr[i]);    
            }
            if(arr[i]>numValue){
                right.push(arr[i]);    
            }
            
        }
        return quickSort(left).concat(numValue,quickSort(right));
        
    }
    alert(quickSort(a));

这种方法是选用一个中间数,每个数轮流与这个中间数进行比较,比这个中间数小那就放进数组left里面,反之则放入数组right

利用递归的方式重复进行比较,用concat将这些数组拼合起来

关于快速排序

标签:style   blog   color   io   ar   for   div   cti   sp   

原文地址:http://www.cnblogs.com/SLEBEE/p/3959518.html

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