【发布时间】:2015-10-14 07:07:45
【问题描述】:
这是我的算法作业,我不知道如何进行。
给定一个包含 m 个字符串的数组 A,其中不同的字符串可能有不同数量的 个字符,但数组中所有字符串的字符总数为 n。显示 如何在 O(n) 时间内对字符串进行排序。请注意,此处所需的顺序是标准的 按字母顺序;例如,a
【问题讨论】:
-
对大小为
N的字符串数组进行排序的最快速度大约是O(N*lgN),这是通过合并排序或快速排序获得的。 -
this 的可能重复项。
-
由 npinti 链接,从最低有效到最高有效字符计数/基数排序将需要(字符串的最大长度)遍,每次通过移动 m 个字符串。如果字符串的最大长度被认为是一个常数,例如 n 或其他一些常数,那么时间复杂度可以被认为是 O(m)(而不是 O(n))。如果m被认为是常数,n是可变的,那么时间复杂度可以认为是O(n)。
-
致 OP:你或许应该比写下“这是我的作业复制粘贴,帮帮我!”付出更多的努力。比如,解释一下你不明白的地方,或者用你自己的话讲述(这相当于解决橡皮鸭问题,所以它本身实际上很有用!)。
标签: c arrays string algorithm sorting