📜  门| GATE CS 2012 |第37章

📅  最后修改于: 2021-06-28 22:05:06             🧑  作者: Mango

使用合并排序算法将n个字符串(每个长度为n)的列表按字典顺序排序。该计算的最坏情况运行时间是
(A) O(n log n)
(B) O(n 2 log n)
(C) O(n 2 + log n)
(D) O(n 2 )答案: (B)
解释:

当我们对由n个整数组成的数组进行排序时,涉及的比较总数的递归关系为:

T(n)= 2T(n / 2)+(n),其中(n)是比较的次数,以便合并大小为n / 2的2个排序的子数组。
=(nlog2n)

我们将获得n个字符串,而不是其比较需要O(1)时间的整数。在O(n)最坏的情况下,我们可以比较2个字符串。因此,现在的比较总数为(n2log2n),其中每个比较现在需要O(n)时间。

通常,合并排序进行(nlog2n)个比较,并且如果每个比较都可以在O(1)时间中完成,则合并排序将在(nlog2n)时间中运行。

请参阅https://www.geeksforgeeks.org/data-structures-and-algorithms-set-28/的问题5

该解决方案由Pranjul Ahuja提供
这个问题的测验