

-
1、冒泡排序是一种用时间换空间的排序方法,n小时好
2、最坏情况是把顺序的排列变成逆序,或者把逆序的数列变成顺序,最差时间复杂度O(N^2)只是表示其操作次数的数量级
3、最好的情况是数据本来就有序,复杂度为O(n) -
1、n大时好,快速排序比较占用内存,内存随n的增大而增大,但却是效率高不稳定的排序算法。
2、划分之后一边是一个,一边是n-1个,
这种极端情况的时间复杂度就是O(N^2)
3、最好的情况是每次都能均匀的划分序列,O(N*log2N) -
1、n大时好,归并比较占用内存,内存随n的增大而增大,但却是效率高且稳定的排序算法。
https://www.cnblogs.com/fengff/p/10983733.html
改进:
改进方案:改进选取枢轴的方法
1、选取随机数作为枢轴。
但是随机数的生成本身是一种代价,根本减少不了算法其余部分的平均运行时间。
2、使用左端,右端和中心的中值做为枢轴元。
经验得知,选取左端,右端,中心元素的中值会减少了快排大约 14%的比较。
3、每次选取数据集中的中位数做枢轴

本文讨论了排序算法的时间复杂度,重点分析了快速排序在最坏情况下的O(N^2)时间复杂度,并提出了三种改进策略:1) 选取随机数作为枢轴,2) 使用三数取中值法,3) 选取中位数作为枢轴。通过随机化选择枢轴,可以降低快速排序在已排序数组上的最坏情况,提高平均性能至O(logN)。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



