📜  门| GATE-CS-2014-(Set-2)|第65章

📅  最后修改于: 2021-06-29 06:03:44             🧑  作者: Mango

假设P,Q,R,S,T是长度分别为20、24、30、35、50的排序序列。通过一次将两个序列合并在一起,将它们合并为一个序列。在最坏的情况下,执行此操作的最佳算法所需的比较次数为____。
(A) 358
(B) 438
(C) 568
(D) 664答案: (A)
说明:要合并大小为m和n的两个列表,在最坏的情况下,我们需要进行m + n-1比较。由于我们需要一次合并2个,因此最佳策略是首先获取最小大小的列表。选择最小的两个项目的原因是要携带最少的项目以便在合并中重复。
我们首先合并20和24,并使用43个最坏情况的比较得出44的列表。然后,我们使用64种最坏情况的比较将30和35合并为65的列表。然后,我们使用93个比较将50和44合并为94的列表。最后,我们使用158个比较合并94和65。因此比较总数为43 + 64 + 93 + 158,即358。

资料来源:https://www.geeksforgeeks.org/data-structures-algorithms-set-34-2/
这个问题的测验