【问题标题】:Big-O and Cache Aware Data Structures & AlgorithmsBig-O 和缓存感知数据结构和算法
【发布时间】:2009-12-24 09:23:25
【问题描述】:

是否有地方可以对链表、各种树、哈希等传统数据结构与 Judy 树等缓存感知数据结构进行 Big-O 风格的分析/比较?

【问题讨论】:

    标签: algorithm data-structures caching big-o


    【解决方案1】:

    其实,

    我会查看 here 来分析 Judy Trees。

    如该数据所示,Judy's 较小的尺寸不会给它一个 巨大的速度优势超过 传统的“以规模换速度” 数据结构。朱迪收到 无数的工时开发和 调试 20,000 行代码;一世 花了一三个小时写了一篇 相当标准的 200 行哈希表。

    如果您的数据是严格顺序的; 您应该使用常规数组。如果 您的数据通常是连续的,或者 大致顺序(例如 算术序列步进 64), Judy 可能是最好的数据结构 使用。如果您需要保留空间 最低限度——你有大量的 关联数组,或者你只是 存储非常小的值,朱迪是 可能是个好主意。如果你需要一个 排序迭代器,和朱迪一起去。 否则,哈希表可能就像 有效,可能更快,而且更多 更简单。

    【讨论】:

      【解决方案2】:

      BigO 是关于执行某些任务的算法复杂性。 每个数据结构都有不同的任务可用。最重要的一项是: 排序、查找(在已排序的结构中)并添加元素。

      那么您要寻找的是特定数据结构的特定任务的复杂性。

      对于大多数数据类型,最佳排序算法是 O(nlog(n)),但请记住,某些结构仍然较慢,例如排序链表比数组慢,尽管两者都有 n log(n) 复杂度

      【讨论】:

        【解决方案3】:

        阅读 Don Knuth 的 The Art of Computer Programming 书籍。许多人认为这些是最好的算法信息来源。

        【讨论】:

        • 谢谢,但我在想一些更紧凑的东西 ;-)
        • Muvan Me'alyv - 我不知道 SO 是否会显示希伯来语... בא נראה
        【解决方案4】:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-09-18
          • 1970-01-01
          • 2022-01-20
          • 1970-01-01
          • 2011-06-12
          • 1970-01-01
          • 1970-01-01
          • 2022-06-20
          相关资源
          最近更新 更多