在某些地方我可以对传统数据结构进行Big-O风格分析/比较,例如链表,各种树,哈希等,还有缓存感知数据结构,如Judy树等等?
答案 0 :(得分:2)
实际上,
我会查看here来分析Judy Trees。
如此数据所示,朱迪的 较小的尺寸不会给它一个 超过一个巨大的速度优势 传统的“贸易规模为速度” 数据结构。朱迪收到了 无数的工时发展和 调试20,000行代码;一世 花了一个小时或三个小时写一篇 相当标准的200行哈希表。
如果您的数据是严格顺序的; 你应该使用常规数组。如果 您的数据通常是顺序的,或者 近似顺序的(例如 算术序列步进64), Judy可能是最好的数据结构 使用。如果你需要保持空间 最小 - 你有很多 关联数组,或者你只是 存储非常小的值,Judy是 可能是个好主意。如果你需要 排序迭代器,与朱迪一起去。 否则,哈希表可能就是这样 有效,可能更快,更多 简单。
答案 1 :(得分:1)
BigO是关于algorhitms comlexity做某项任务的。 每个数据结构都有不同的任务。最重要的是: 排序,查找(按排序结构)并添加元素。
那么你在寻找什么是某些数据结构的某些任务的复杂性。
对于大多数数据类型,最佳排序算法是O(n log(n)),但请记住,某些结构仍然较慢,例如排序链表比数组慢,但两者都有n log(n)复杂性
答案 2 :(得分:0)
阅读Don Knuth撰写的The Art of Computer Programming本书。许多人认为这些是算法信息的最佳来源。
答案 3 :(得分:0)
你看过了:“算法简介”