高效的列表数据结构

3

我需要一种列表类型的数据结构来在项目中实现。实际上,它不一定是某种列表,但它必须快速,并且我将使用它来不断地插入/删除/检索数据(其他数据结构)从中。我可能会插入一些东西,搜索,再次插入,删除,再次搜索等等,因此操作有点随机。

到目前为止,我发现跳表是最快的,还有比它更快的吗?


3
你是如何搜索的?你所用的索引是什么?你的问题可以归结为“我想要一个快速的数据结构”,但我们需要更多关于你访问模式的细节才能给出真正的答案。 - raylu
我正在使用唯一字符串进行索引。抱歉,我忘记提到了这一点。 - Mihai Neacsu
3个回答

0

很多事情都取决于你选择的编程语言。C语言可以给你最大的控制权,让你最终得到最快的实现方式。当然,你也很容易自己给自己惹麻烦。Python抽象了很多列表数据结构,我发现它一直很快,但我也没有过分强调。

我建议你检查一下freshmeat上的预构建C库,看看能否重用它们来完成你的任务。也许维基百科关于跳表的页面会指引你找到更多信息:http://en.wikipedia.org/wiki/Skip_list

数据结构是一个深入的主题,需要对大O符号有足够的理解,以及当我们谈论“速度”和“效率”时它确切的含义,否则你将无法进行客观比较。最后,每种方法都有其优缺点。选择一个最能模拟你的数据和你打算如何操作它的数据结构。如果你的任务比较随机,请回到设计阶段,问问自己在数据结构之前如何改进发生的事情。也就是说,先确定好你的算法,然后再选择一个数据结构来补充它。


我使用的语言是C。该项目通过运行时进行测试,因此完成所有这些操作所需的速度越快越好。从内存方面来说并不重要。 - Mihai Neacsu

0

你可能需要一个哈希表/哈希映射/字典。例如,在Python中有字典


0
你可以看一下BTree

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接