我必须找到一种算法来对O(n)复杂度中的数组进行排序。 数组的长度为n,有两个不同的键。
例如java中的这个数组:
int[][] array = {{1,2},{2,1},{1,1}};
结果应为
1 1
1 2
2 1
我努力解决这个问题..
谁可以帮助我?
提前致谢
答案 0 :(得分:1)
如果您的数据存储在Trie中,那么DFT(深度优先遍历)将显示您的trie实际上是如何根据定义进行Radix排序。
如果您构建了Trie,并且所有子集具有相同数量的元素,则trie的叶子按顺序是子集,其中叶子的深度是每个子集的元素数。
使用Trie,你有O(m),其中m =子集数
或者您可以尝试基数排序,其中您有Ω(n * m),其中n =子集的大小
..希望这会有所帮助