高效的列表数据结构

时间:2011-04-26 02:46:34

标签: c performance list data-structures skip-lists

我需要一个列表类型的数据结构来在项目中实现。实际上它没有必要是某种列表,但它必须很快,我将用它来不断地插入/删除/检索数据(其他数据结构)。我可以插入一些东西,搜索,再次插入,删除,再次搜索等等,所以动作是随机的。

到目前为止,我发现跳过列表最快,有什么比那更快?

3 个答案:

答案 0 :(得分:0)

很大程度上取决于您选择的语言。 C使您可以最大程度地控制最终的数据结构,最终将实现最快的实现之一。当然,很容易让自己在脚下拍摄。相当糟糕。 Python抽象了很多列表数据结构,我发现它一直很快,但我也没有太强调它。

我建议检查一下预制C库的freshmeat,你可以为你的任务重新调整用途。也许维基百科的跳过列表页面会指向更多:http://en.wikipedia.org/wiki/Skip_list

数据结构是一个很深的主题,需要在大O符号上有一个良好的基础,以及当我们谈论“速度”和“效率”时它究竟意味着什么,否则你将无法进行客观的比较。最后,一切都有折衷。选择一种数据结构,该数据结构最接近您的数据建模,以及您打算如何操作它。如果您的任务相当随机,请回到设计阶段,并询问您自己如何改进在进入数据结构之前发生的事情。也就是说,让你的算法被敲定,然后选择一个数据结构来补充它。

答案 1 :(得分:0)

hashtable / hashmap / dictionary听起来像你想要的。例如,Python中的dictionaries

答案 2 :(得分:0)

您可以查看BTree