【发布时间】:2009-12-24 09:23:25
【问题描述】:
是否有地方可以对链表、各种树、哈希等传统数据结构与 Judy 树等缓存感知数据结构进行 Big-O 风格的分析/比较?
【问题讨论】:
标签: algorithm data-structures caching big-o
是否有地方可以对链表、各种树、哈希等传统数据结构与 Judy 树等缓存感知数据结构进行 Big-O 风格的分析/比较?
【问题讨论】:
标签: algorithm data-structures caching big-o
其实,
我会查看 here 来分析 Judy Trees。
如该数据所示,Judy's 较小的尺寸不会给它一个 巨大的速度优势超过 传统的“以规模换速度” 数据结构。朱迪收到 无数的工时开发和 调试 20,000 行代码;一世 花了一三个小时写了一篇 相当标准的 200 行哈希表。
如果您的数据是严格顺序的; 您应该使用常规数组。如果 您的数据通常是连续的,或者 大致顺序(例如 算术序列步进 64), Judy 可能是最好的数据结构 使用。如果您需要保留空间 最低限度——你有大量的 关联数组,或者你只是 存储非常小的值,朱迪是 可能是个好主意。如果你需要一个 排序迭代器,和朱迪一起去。 否则,哈希表可能就像 有效,可能更快,而且更多 更简单。
【讨论】:
BigO 是关于执行某些任务的算法复杂性。 每个数据结构都有不同的任务可用。最重要的一项是: 排序、查找(在已排序的结构中)并添加元素。
那么您要寻找的是特定数据结构的特定任务的复杂性。
对于大多数数据类型,最佳排序算法是 O(nlog(n)),但请记住,某些结构仍然较慢,例如排序链表比数组慢,尽管两者都有 n log(n) 复杂度
【讨论】:
阅读 Don Knuth 的 The Art of Computer Programming 书籍。许多人认为这些是最好的算法信息来源。
【讨论】:
【讨论】: