![]() |
1
1
这样的部分排序是可能的,而产生的方法看起来像是选择排序的混合-在数组尾部最小元素的搜索部分,和插入排序-在移位元素的部分(但没有比较)。排序保留尾部元素的顺序(尽管没有明确要求)
|
![]() |
2
1
是的,这是可能的。这将及时运行
你最好用heapsort。它将及时运行
那是一棵这样的树:
当我们把树堆起来时:
现在每个元素提取都需要将最后一个元素交换到最终位置,然后让大元素“从树上掉下来”。这样地:
在数组树表示中:
再重复一遍,我们得到:
再说一遍:
或
|
![]() |
3
0
最佳情况:阵列已订购
考虑到比较是最基本的操作,那么比较的次数是
最坏情况:数组顺序相反
(两者都考虑了为保持数组顺序而进行的比较) |