JS排序之快速排序详解

前端之家收集整理的这篇文章主要介绍了JS排序之快速排序详解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_502_0@本文为大家分享了JS快速排序的具体代码,供大家参考,具体内容如下


@H_5020@说明


@H
5020@时间复杂度指的是一个算法执行所耗费的时间
空间复杂度指运行完一个程序所需内存的大小
稳定指,如果a=b,a在b的前面,排序后a仍然在b的前面
不稳定指,如果a=b,a在b的前面,排序后可能会交换位置


@H
502_0@<span style="color: #800000">

--JS快速排序--


@H_5020@

原理


@H
502_0@从数组中选定一个基数,然后把数组中的每一项与此基数做比较,小的放入一个新数组,大的放入另外一个新数组。然后再采用这样的方法操作新数组。直到所有子集只剩下一个元素,排序完成。


@H_502_0@时间复杂度,空间复杂度,稳定性

  • 平均时间复杂度O(nlogn)
  • 最好情况O(nlogn)
  • 最差情况O(n*n)
  • 空间复杂度O(logn)
  • 稳定性:不稳定
@H_502_0@快速排序的写法

@H_301_32@

@H_502_0@

解析

@H_502_0@pivotIndex是将数组的长度除2向下取整得到的一个数值,数组的长度是不断减半的,所以最后它的值为0

@H_502_0@pivot是利用splice方法从数组里获取一个基数

@H_502_0@以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

猜你在找的JavaScript相关文章