美文网首页
三、快速排序

三、快速排序

作者: lucky_果果 | 来源:发表于2019-10-31 18:35 被阅读0次

思想:(1)找一个数组的基准点,从数组中取出,改变原数组(用splice实现)

            (2)生成left和right两个数组,小于基准值push到left,大于push到right,利用concat拼接left、基准值、right

                (3)对left和right分别递归调用

代码截图:

代码:

function quickSort(arr){

  arr = arr.concat();

  if(arr.length<=1) return arr;

  let base = arr.splice(0,1);

  let left = [];

  let right = [];

  arr.forEach(element => {

    if(element<base){

      left.push(element);

    }else{

      right.push(element);

    }

  });

  return quickSort(left).concat(base,quickSort(right))

}

console.log(quickSort([6,7,1,2,23,12,1,4,2]));

相关文章

  • 排序

    插入排序 选择排序 冒泡排序 归并排序 快速排序* 三路快速排序

  • OC数据结构&算法

    更多整理资料尽在?一平米小站 目录 选择排序 冒泡排序 插入排序 快速排序 双路快速排序 三路快速排序 堆排序 选...

  • python排序方法

    一、冒泡排序 二、快速排序 三、选择排序

  • 排序算法

    一、冒泡排序 二、选择排序 三、快速排序

  • 排序算法总结

    选择排序法 插入排序法 冒泡排序法 归并排序法 自顶向下 自底向上 快速排序法 单路快速排序法 双路快速排序法 三...

  • Objective-C实现常用的排序算法

    一、冒泡排序: 二、选择排序: 三、快速排序: 四、插入排序:

  • 排序算法(二)

    一.选择排序 二.冒泡排序 三.快速排序 四.算法比较

  • 算法导论公开课笔记(二)快速排序和随机化算法

    快速排序 与归并排序一样,快速排序也使用了分治的思想解决排序问题。对一个典型的子数组A[p..r]进行快速排序的三...

  • 排序 三 快速排序

    快速排序是一种分治排序算法。快速排序需要先找到一个基准值v和经过初步交换得到的此基准值v在数组中的下标p,经过初步...

  • python快速排序

    探究快速排序及三路快速排序的应用场景在对近乎有序或相同元素很多的列表进行排序时,如果不进行调优,快速排序会接近o(...

网友评论

      本文标题:三、快速排序

      本文链接:https://www.haomeiwen.com/subject/logtbctx.html