Big-O和Cache Aware数据结构&算法

时间:2009-12-24 09:23:25

标签: algorithm data-structures caching big-o

在某些地方我可以对传统数据结构进行Big-O风格分析/比较,例如链表,各种树,哈希等,还有缓存感知数据结构,如Judy树等等?

4 个答案:

答案 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)

你看过了:“算法简介”

http://en.wikipedia.org/wiki/Introduction_to_Algorithms