【问题标题】:Designing an algorithm to sort n strings in O(dn)设计一种算法以在 O(dn) 中对 n 个字符串进行排序
【发布时间】:2017-02-13 09:16:32
【问题描述】:

如何设计一种算法来对 O(dn) 中的 n 个字符串进行排序,其中 d 是最长字符串中的#of 个字符?

【问题讨论】:

    标签: algorithm sorting array-algorithms


    【解决方案1】:

    您可以使用trie

    1. 创建一个空树。

    2. 遍历所有字符串,并将它们放入其中。

    3. 按顺序遍历所有 trie 的值,然后输出它们(参见下面 Jean-Baptiste Yunès 建议的 Trie complexity and searching)。

    1 的复杂度是恒定的。 2 和 3 的复杂度分别为 O(dn)

    【讨论】:

    • 第三点不清楚。您如何确保字符串已排序
    • @SauravSahu 这是一个非常简单的递归函数(参见here 一个实现)。从节点开始,按顺序递归访问所有子节点,同时跟踪当前前缀。当你碰到一片叶子时,输出沿路径的总字符串。
    • @Jean-BaptisteYunès 感谢您提供有用的链接!添加内联
    猜你喜欢
    • 1970-01-01
    • 2021-03-12
    • 2011-05-24
    • 2018-07-16
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    • 2011-12-22
    • 2018-08-17
    相关资源
    最近更新 更多