【发布时间】:2021-01-19 09:26:31
【问题描述】:
排序后的数组的最后一个元素被替换为数组中没有出现的随机值。应该使用哪种经典(即非优化)排序算法版本来尽可能高效地对该数组进行排序?
【问题讨论】:
-
你怎么看?
排序后的数组的最后一个元素被替换为数组中没有出现的随机值。应该使用哪种经典(即非优化)排序算法版本来尽可能高效地对该数组进行排序?
【问题讨论】:
由于除了最后一个元素之外,数组已排序,因此不需要排序。
只需从数组中取出最后一个元素,并将其插入到正确的位置。需要 O(log n) 时间来找到插入它的位置。
附言
正如@Henry 所指出的,实际插入数组(至少在大多数编程语言中)将花费另一个 O(n) 时间,因为它很可能意味着将所有元素向右移动一个释放我们想要插入元素的位置。
【讨论】: