给定n个单词,是否可以按字典顺序对它们进行排序,其中o(n)时间复杂度?我发现了一种方法,比如创建一个trie数据结构,并且trie的顺序遍历会导致时间复杂度接近于O(kn),其中k是任意字符串长度,但这里的问题是空间复杂度。构建BST和顺序遍历也是一个不错的选择,但时间复杂度是O(nlogn)。因此,任何人都可以建议我,考虑到两者的限制,那将是更好的BST或trie。还欢迎任何其他算法或建议。
答案 0 :(得分:3)
使用bucket sort或radix sort在O(nL)
时间内对单词进行排序很容易。这里L
是字长。要做得更好是不可能的,因为你必须至少看一次所有键。
您的triesort想法很旧。