排序算法时间复杂度求教
  • 板块学术版
  • 楼主Milky_Cat
  • 当前回复31
  • 已保存回复31
  • 发布时间2023/1/5 18:28
  • 上次更新2023/10/24 05:28:31
查看原帖
排序算法时间复杂度求教
906320
Milky_Cat楼主2023/1/5 18:28

我琢磨出一种奇怪的排序:

对于输入的 nn 个数据,用 vector 容器和两个数组headtail及一个变量 pp 维护至多 nn 个队列,规则为:

1.初始时,p=0p=0

2.输入元素 aia_i 时,若 aiai1a_i \geq a_{i-1},不作任何变动。

3.输入元素 aia_i 时,若 ai<ai1a_i < a_{i-1}pp+1p\leftarrow p+1

4.当元素 aia_i 输入完成后,让 aia_i 进入第 pp 个队列, tail[p]tail[p]+1tail[p] \leftarrow tail[p]+1

5.当所有数据输入完成后,开始排序,每次在 pp 个满足 headtailhead \leq tail 的队列的第 headhead 项中求出最小值,最小值所在的队列 head[min]head[min]+1head[min] \leftarrow head[min]+1

求问:

1.此排序算法是否可行?

2.最好情况下和最坏情况下的时间复杂度是多少?

蒟蒻认为最好情况下是 O(n)O(n),最坏是 O(n2)O(n^2),但这是凭感觉想出来的,感觉完全不对。

(本人萌新,如果 KaTeX\KaTeX 有错用之处请各位大神指正。)

2023/1/5 18:28
加载中...