js 排序方法,js 排序函数,JS排序之快速排序详解

js 排序方法,js 排序函数,JS排序之快速排序详解

本文主要详细介绍了JS快速排序的相关信息,具有一定的参考价值。感兴趣的朋友可以参考一下。

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

解释

时间复杂度指的是算法执行所需的时间。

空间复杂度是指运行一个程序所需的内存量。

稳定是指如果a=b,A领先于B,排序后A仍然领先于B。

不稳定是指如果a=b,A排在B之前,排序后可能会改变位置。

--JS快速排序--

原理

从数组中选择一个基数,然后将数组中的每一项与这个基数进行比较。小的放入一个新数组,大的放入另一个新数组。然后用这个方法操作新的数组。直到所有子集中只剩下一个元素,排序完成。

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

平均时间复杂度O(nlogn)

最佳情况O(nlogn)

最坏情况O(n*n)

空间复杂度O(logn)

稳定性:不稳定

快速排序的写作方法

var examplearr=[8,94,15,88,55,76,21,39];

函数快速排序(arr){

if(数组长度2){

返回arr

}

var left=[];

var right=[];

var pivotIndex=math . floor(arr . length/2);

var pivot=arr.splice(pivotIndex,1)[0];

for(I=0;iarr .长度;i ){

if(arr[i]pivot){

left . push(arr[I]);

}否则{

右推(arr[i])

}

}

返回快速排序(左)。concat([pivot],fast sort(right));

}

console . log(fast sort(example arr));

解析

PivotIndex是通过将数组长度除以2并向下舍入得到的数值。数组的长度连续减半,所以最后它的值是0。

Pivot使用splice方法从数组中获取基数。

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

js 排序方法,js 排序函数,JS排序之快速排序详解