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

javascript快速排序

时间:2015-12-09 23:03:15      阅读:234      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!