快速排序

关键词:快速排序

步骤:

1.找基准(一般是以中间项为基准)

2.遍历数组,小于基准的放在left,大于基准的放在right

3.递归

  function quickSort(arr){
     //如果数组长度<=1,则直接返回
     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;i<arr.length;i++){
       if(arr[i] <= numValue){
        left.push(arr[i]);
       }else{
        right.push(arr[i]);
       }
     } 
     // 递归
     return quickSort(left).concat([numValue],quickSort(right));     
  }

    var a = quickSort([12,99,347,883,995,352,663]);
    alert(a);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • quicksort可以说是应用最广泛的排序算法之一,它的基本思想是分治法,选择一个pivot(中轴点),将小于pi...
    黎景阳阅读 479评论 0 1
  • 概述 快速排序是面试中的常见题,每次简述一遍快速排序的原理便觉得仿佛已经掌握了它。不是挺简单的吗?然而实际实现的时...
    芥丶未央阅读 1,590评论 0 0
  • 算法的个人理解: 基于分治思想,将复杂的问题简单化;具体的做法是在待排序的数组中,选取一个基准数,这个基准数...
    开开心心美滋滋阅读 487评论 0 0
  • 我是树洞君,可能你以前听过我,也可能没有听过我,但没有关系,都说重要的事情说三遍,我非常激动的跟大家说下: 念想国...
    树洞君施攀阅读 469评论 0 1
  • 我们家的习俗,把爷爷的妈妈称为姥姥。 小时候因为爸妈要上班没时间带我,所以把我丢在老家和爷爷奶奶,还有姥姥一起住。...
    梌枖阅读 832评论 0 2