本文主要详细介绍了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方法从数组中获取基数。
这就是本文的全部内容。希望对大家的学习有帮助,支持我们。