algorithm - 按词典顺序对单词进行排序

标签 algorithm sorting data-structures

给定 n 个词,是否可以将它们按词典顺序排序,时间复杂度为 o(n)?好吧,我找到了一种方法,比如创建一个 trie 数据结构,并且 trie 的中序遍历会导致时间复杂度接近 O(kn),其中 k 是任意字符串长度,但这里的问题是空间复杂度。构建 BST 和中序遍历也是一个不错的选择,但时间复杂度为 O(nlogn) 。因此,鉴于两者的限制,任何人都可以建议我更好的 BST 或 trie。也欢迎任何其他算法或建议。

最佳答案

使用 bucket sort 很容易在 O(nL) 时间内对单词进行排序或 radix sort .这里 L 是字长。不可能做得更好,因为您必须至少查看所有键一次。

你的 triesort想法是一个古老的想法。

关于algorithm - 按词典顺序对单词进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17561563/

相关文章:

algorithm - 并行查找多个最近的射线段交叉点

php - 获取所有非重复的字符串组合(无论顺序如何)

c# - 简单集合的有序交换

php - mysql 对发送和接收的消息进行排序

python - 寻找最近连接的图算法

algorithm - 从有序列表中插入和删除元素的时间复杂度

c# - 为什么在 C# 中 Dictionary 优于 Hashtable?

java - 在遍历日志文件条目时打印少量堆栈跟踪行

c - 按顺序合并(交错)两个排序的数组(但合并后不排序)

javascript - 对 javascript 数组进行排序,使空白值始终位于底部