首页 > 编程语言 > 详细

javascript快速排序

时间:2015-12-09 23:01:31      阅读:260      评论:0      收藏:0      [点我收藏+]

假如让你写一个排序,你会怎么写呢?for循环搞定吗?来看下边这个是怎么实现的:

技术分享
function quickSort(arr){
        if(arr.length<=1){
            return arr;
        }

        var num = Math.floor(arr/2);

        var numValue =  arr.splice(num,1);

        var left=[];
        var right=[];

        for(var i=0;i<arr.length;i++){
            if(arr[i]<numValue){
                left.push(arr[i]);
            }else{
                right.push(arr[i]);
            }
        }

        return arguments.callee(left).concat([numValue],arguments.callee(right))
    }
View Code

整体思想:切割→站队,如此递归

在没接触这个算法之前还真有点蒙圈,肯定会想着写两个for循环对比得了,但是,两个for循环,整体的运算次数绝对要大于上边这个排序

javascript快速排序

原文:http://www.cnblogs.com/nonmingbobo/p/5034525.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!