使用归并排序算法将长度为n的n个字符串按字典顺序排序。这个计算的最坏运行时间是什么?
我搜索了这个问题,无论在哪里,都发现答案是O(n^2logn)。
而我的方法如下: 比较两个字符串需要O(n)次比较,因此每次合并需要O(n^2)的时间。 因此,递归方程式为: T(n) = 2T(n/2) + O(n^2) 因此,通过主方法: T(n) = O(n^2)。
请在我有错误的地方纠正我。
我搜索了这个问题,无论在哪里,都发现答案是O(n^2logn)。
而我的方法如下: 比较两个字符串需要O(n)次比较,因此每次合并需要O(n^2)的时间。 因此,递归方程式为: T(n) = 2T(n/2) + O(n^2) 因此,通过主方法: T(n) = O(n^2)。
请在我有错误的地方纠正我。
n
个字符串,每个字符串的字符都必须进行排序。由于每个字符串都有n
个字符,因此通过归并排序进行排序将是一个O(nlgn)
的操作,对于所有n
个字符串则为O(n^2*lgn)
。但问题还有第二部分,即对这n
个单词进行排序。这同样是一个O(nlgn)
的操作;但它不会改变总运行时间。但也许我在这里是错的。 - Tim Biegeleisen