快速排序算法在JS中的实现

分类:知识百科 日期: 点击:0

快速排序算法

快速排序是一种比较常用的排序算法,它的时间复杂度为O(nlogn),是一种不稳定的排序算法。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比一部分的所有数据都要小,再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

JS中快速排序的实现

JS中快速排序的实现主要由以下几个步骤组成:

  • 1、从数列中取出一个数作为基准数。
  • 2、分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
  • 3、再对左右区间重复第二步,直到各区间只有一个数。

JS实现快速排序的示例代码

function quickSort(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));
}

上面的代码实现了快速排序的基本思想,选择一个基准数,将数组中的数据分割成两部分,一部分比基准数小,另一部分比基准数大,将左右两部分数据分别进行快速排序,最终达到排序的目的。

标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。