2012-09-17 75 views
0

我需要有一个数据结构与说4键和其他数据;我可以对这些键中的任何一个进行排序。我可以选择什么样的数据结构? 排序时间应该很少数据结构排序+搜索有效

想到一棵树,但只会帮助搜索一个键。 ...对于其他密钥将不得不重新制作该特定密钥树,然后找到它... 任何数据结构,可以有哪些将同时照顾所有4个键? https://stackoverflow.com/questions/ask

+0

对于这样的更一般的问题,最好在http://programmers.stackexchange.com/处询问。 –

回答

0

恐怕没有这样的结构,将保证您在同一时间访问每个值。

最有效的搜索结构是trees。有很多不同种类的树木。最简单的是binary search tree。但有可能你必须迭代这个结构中仍然存在的所有键。

这就是为什么我建议你这棵树的平衡版本。二叉树是简单的结构。

如果您正在寻找更先进的东西,请查看B-Tree。这个结构被数据库索引使用,被认为是非常有效和快速的。

+0

感谢戴夫..任何想法如何数据库排序不同的键,因为我们可以在不同的键上排序? – j10

+1

你能举个例子吗?数据库的排序方式取决于许多因素。最有效的方法是选择符合您的搜索条件的键,对它们进行排序,然后仅将它们用作获取数据的参考。 – DaveTsunami

+0

我的四个字段是:源IP,目标IP,源端口和目标端口。 – j10