【发布时间】:2018-03-05 02:58:44
【问题描述】:
假设我们有 n 个字符串(英文为 26)。字符串的长度为 l1, l2, l3, ... ln >= 1。令 m = sum(l1,l2,l3,...,ln)。如何在时间 O(m) 中对字符串词典进行图形排序?
对算法的思考:
选项 1: 创建一个 BST,我们通过比较它们的字母来插入单词,然后按字母顺序/字典顺序将最左边的词排在第一个字母顺序,将最右边的字母排在最后。
选项 2: 基数排序,我们有从 'A' 到 'Z' 的桶......我想如果 MSB 基数排序又名从第一个字母开始,然后填充每个字符串直到最长的字母可能不是 O(longest string length) 。 ..
选项 3: 我认为尝试是一回事,但不确定它们的时间复杂度是否适用于此?
要获得最佳标记,请选择上述 3 项中的一项并解释其为何有效而其他项无效〜或包含指向良好算法的链接或提供答案〜关于您将如何设计在此时间限制下有效的算法?
【问题讨论】:
标签: string algorithm sorting tree lexicographic