常用算法-快速排序

Posted 前端二三事

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用算法-快速排序相关的知识,希望对你有一定的参考价值。

  • 算法描述: 
    快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想——分治法也确实实用。快速排序是一种既不浪费空间又可以快一点的排序算法。

  • 算法步骤: 
    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)); //链接左数组、基准数构成的数组、右数组};

以上是关于常用算法-快速排序的主要内容,如果未能解决你的问题,请参考以下文章

常用排序算法之快速排序

常用排序算法模板

常用算法-快速排序

常用排序算法

快速排序—最常用的排序算法

常用排序算法比较