
快速排序时间复杂度:
可以看这个视频视频
https://www.bilibili.com/video/BV1xb411T7dN?spm_id_from=333.337.search-card.all.click
N个数据
第1次分成2组=2^1
第2次分成4组=2^2
第3次分成8组=2^3
…
第t次分成 2^t 组,完成所有数据的排序
所以2^t = N
所以 t = log2N 也就是logN ,也就是空间复杂度为 logN
在每一次排序里,又遍历了所有数据,所以每一次的时间复杂度是 N
所以,快速排序总的平均时间复杂度是 o(NlogN)

最坏的情况:
已经正序或者逆序排好了顺序,那么第一次要排N 个数,第二次 N-1 个,第三次 N-2 个,构成一个等差数列,所以时间复杂度为 (a1+an)*N/2=(N+1)*N/2 ≈ N^2
所以时间复杂的最差为 o(N^2)


本文深入探讨快速排序算法的时间复杂度,平均情况下为O(NlogN),最佳情况是已排序或反序排列,时间复杂度为O(N^2)。通过实例解析了快速排序的分治策略,并分析了其在不同输入情况下的性能表现。
752

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



