js快速排序

首先了解什么是快速排序。

1、找到一个基准值(一般是中间位)
2、然后将数组的值与基准值比较,分为两个数组(比基准值小的,比基准值大的)
3、然后对这两个数组再排序,循环。


var arr = [1,3,4,8,2,0,9,11,5];
console.log(quickSort(arr));

function quickSort(arr){

    if(arr.length <= 1) return arr;
    var index = Math.floor(arr.length/2);
    var key = arr.splice(index,1)[0];
    var left = [], right = [];
    for(var i=0;i<arr.length;i++){

        arr[i]<key?left.push(arr[i]):right.push(arr[i]);
    }
    return quickSort(left).concat([key],quickSort(right));
}

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

推荐阅读更多精彩内容

  • tips:接下去会在github写博客,简书不再更新和修改文章,欢迎大家逛逛我的新博客点击查看 ,我会尽量用更容易...
    aermin阅读 3,329评论 0 6
  • 从数组中选取一个数据作为基准,一般默认数组中第一个数据,然后比基准小的放到左侧,比基准大的放到右侧完成第一轮后分割...
    夜雨声烦人阅读 710评论 0 4
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,237评论 0 52
  • 阴雨连绵,闲坐小院,脚下是青苔的地面,抬头是斑驳的墙砖,不禁陷入沉思,这样的老家,这样的乡村,我还能再回来几次。 ...
    张永胜_永往直前阅读 105评论 0 0
  • 编程 所谓编程,就是将一组需求分解成一组函数与数据结构的技能。 假与真 下面列出的值被当作假(false) fal...
    linice阅读 275评论 0 4