关于排序速度
  • 板块学术版
  • 楼主JoyJoyGang
  • 当前回复23
  • 已保存回复23
  • 发布时间2022/5/11 20:55
  • 上次更新2023/10/28 01:39:41
查看原帖
关于排序速度
393748
JoyJoyGang楼主2022/5/11 20:55

快速排序

有关快速排序时间复杂度: 最好的时间复杂度和平均时间复杂度就是O(nlogn)O(nlogn); 正常情况下是递归log2n次,每次遍历的最坏时间复杂度是n,所以平均时间复杂度是O(nlogn); 最好的时间复杂度就是每次都划分的很均匀;时间复杂度就是O(nlogn); 最坏的时间复杂度是O(n2)O(n^2),这种情况就是原先的数据就是排序好,这样每次只能位移一个数据, 每次划分的子序列只比上一次划分少一个记录,注意两一个为空。

3、归并排序

归并排序时间复杂度: 归并排序无论在什么情况下,将数组拆分都需要log(n)次; 在归并时,也需要遍历比较两个数组的大小,平均时间复杂度O(n); 所以归并排序最好最坏时间复杂度都是nlogn; 空间复杂度是O(n);

4、堆排序

堆排序每次都要将一个元素上升到堆顶,然后放回最后,需要n轮,固定不变 每一轮堆调整的时间复杂度是log(n),n依次递减 所以堆排序的时间复杂度是O(nlogn)

所以说要是简单排序最好用归并排序吗?

2022/5/11 20:55
加载中...