博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js 快速排序
阅读量:6715 次
发布时间:2019-06-25

本文共 665 字,大约阅读时间需要 2 分钟。

// 快速排序

// 快速排序使用分治法把一个串(list)分为两个子串(sub-lists)。具体算法实现
// 1.从数组中挑出一个元素,成为基准
// 2.重新排列数组,所有元素比基准值小的摆放在基准前面,所有元素比基准大的摆在基准后面(相同的可以任意一边
// 这个分区退出之后,该基准就处于数列的中间位置。成为分区操作
// 3.递归的把小于基准值元素的子数列和大于基准值元素的子数列排序

var quickSort = function(arr) {

  if (arr.length <= 1) { return arr; }
  var pivotIndex = Math.floor(arr.length / 2);
  var pivot = arr.splice(pivotIndex, 1)[0];
  var left = [];
  var right = [];
  for (var i = 0; i < arr.length; i++){
    if (arr[i] < pivot) {
      left.push(arr[i]);
    } else {
      right.push(arr[i]);
    }
  }
  return quickSort(left).concat([pivot], quickSort(right));
};
const arr = [91, 60, 96, 7, 35, 65];
console.log(quickSort(arr));

转载地址:http://naelo.baihongyu.com/

你可能感兴趣的文章
什么是真正的流程管理?流程管理的是与不是。
查看>>
SEO实践:SEO友好的URL结构
查看>>
洛谷P1613 跑路
查看>>
无论所有题,一定要先分析清楚,所有eade case和逻辑都满足后,再动笔
查看>>
softlayer
查看>>
python各种模块,迭代器,生成器
查看>>
CSS颜色
查看>>
Lunar Lander 月球冒险
查看>>
复习日记-xml/tomcat/response/request
查看>>
Java 关键字final的一小结
查看>>
tp5的include 标签 不能用了么
查看>>
php禁止某ip或ip地址段访问的方法(转载)
查看>>
超级菜鸟的Python之路--前传一
查看>>
设置input框文字垂直居中和宽度
查看>>
WinForm笔记
查看>>
js 获取时间不能大于当前系统时间
查看>>
vue公共
查看>>
LeetCode 191. Number of 1 Bits Question
查看>>
关于前端的大致简介!
查看>>
面向对象设计模式总结
查看>>