JS之快速排序quickSort

简介: 快速排序在面临着数据比较多的数组比较实用.

基本思路
1.先取数组中间的数作为比较的基准
2.定义两个数组,一个left,一个right,利用for循环遍历数组,将比基准小的数放置left数组中,反之放入right数组
3.拼接数组,返回数组,排序完成

<script>   
      const quickSort = arr => {
          //数组元素等于小于1就没必要排序,直接return
          if(arr.length<=1){
              return arr;
          }
          //找到基准的索引
          const Index = Math.floor(arr.length/2);
          //把基准的索引从原数组里面删除,并且赋值给新的数组
          const IndexVal = arr.splice(Index,1)[0];
          //定义左右数组
          const left = [];
          const right = [];
          //循环剩余的数组元素,将小于基准的元素添加到left,反之给right
          for(let i=0;i<arr.length;i++){
              if(arr[i]<IndexVal){
                  left.push(arr[i]);
              }
              else{
                  right.push(arr[i]);
              }
          }
          //拼接数组,返回数组,排序完成
          return quickSort(left).concat(IndexVal,quickSort(right));
        }
      const array = [5,4,3,2,1];
      console.log(quickSort(array));
      //[1,2,3,4,5]
</script>
相关文章
|
4月前
|
前端开发 JavaScript 搜索推荐
js快排(JavaScript快速排序算法)- 前端面试
js快排(JavaScript快速排序算法)- 前端面试
|
5月前
|
JavaScript 搜索推荐 前端开发
JS数组自定义排序方法,冒泡排序、插入排序、选择排序和快速排序。
JS数组自定义排序方法,冒泡排序、插入排序、选择排序和快速排序。
33 0
|
9月前
|
JavaScript
js数组冒泡排序,快速排序的原理以及实现
js数组冒泡排序,快速排序的原理以及实现
47 0
|
11月前
|
存储 搜索推荐 JavaScript
如何使用JavaScript实现快速排序算法
如何使用JavaScript实现快速排序算法
82 0
|
搜索推荐 JavaScript
js 基础排序算法 之 冒泡排序, 选择排序, 插入排序,快速排序
js 基础排序算法 之 冒泡排序, 选择排序, 插入排序,快速排序
|
JavaScript
js数组的冒泡排序, 选择排序, 以及快速排序
js数组的冒泡排序, 选择排序, 以及快速排序
|
算法 前端开发 JavaScript
【前端算法】用JS实现快速排序
理解数组方法里面运用到的算法,splice 和 slice的区别
114 0
|
JavaScript
JS快速排序记录
JS快速排序记录
|
JavaScript 前端开发 索引
手撕前端面试题(Javascript~事件委托、数组去重、合法的URL、快速排序、js中哪些操作会造成内存泄漏......
手撕前端面试题(Javascript~事件委托、数组去重、合法的URL、快速排序、js中哪些操作会造成内存泄漏......
124 0
手撕前端面试题(Javascript~事件委托、数组去重、合法的URL、快速排序、js中哪些操作会造成内存泄漏......
|
算法 JavaScript
js算法——快速排序与快速选择
js算法——快速排序与快速选择