本文共享了JS快速排序的具体代码。 请作为参考。 具体内容如下
说明
时间复杂性是指执行算法所需的时间
区域复杂性是指运行程序所需的内存大小
所谓稳定,在a=b的情况下,意味着a在b的前面,排序后a也在b的前面
不稳定是指如果a=b,且a在b之前,则排序后可能会调换位置
-js快速排序-
原理
从数组中选择基数,将数组中的每个项目与此基数进行比较,小的放入新数组中,大的放入另一个新数组中。 然后,用这样的方法操作新数组。 所有子集只剩下一个元素,直到排序完成。
时间复杂性、空间复杂性和稳定性
平均时间复杂度o(nlogn ) )。
最佳情况o(nlogn )。
最坏的情况是o(n*n ) ) ) ) ) ) ) ) )。
空间复杂度o(logn ) )。
稳定性:不稳定
快速排序的写法
varexamplearr=[ 8,94,15,88,55,76,21,39 ];
功能fastsort {
if(ARR.Length2) {
返回区域;
}
var left=[];
var right=[];
varpivotindex=math.floor (arr.length/2 );
varpivot=arr.splice(pivotindex,1 ) [0];
for(I=0; I
if(ARR[I] )
lft.push(ARR[I] );
}else{
right.push(ARR[I] ) ) ) ) ) ) ) ) ) )。
}
}
returnfastsort(left ).concat [ pivot ],fastsort ) right );
}
console.log(fastsort ) examplearr );
分析
pivotIndex是数组长度除以2后四舍五入的值,数组长度会减半,因此最后的值为0
pivot利用splice方法从数组中取得基数
以上是本文的全部内容,希望对大家的学习有帮助。 另外,我希望你能多多支持编剧。