用于插入数据的最快数据结构,而不是用于搜索

时间:2013-06-25 03:46:41

标签: c++ data-structures

任何人都可以告诉我哪种插入数据的数据结构最快。我的要求是加载人名,然后以超快的速度检索它们。没有排序,搜索特定名称等问题,甚至没有内存问题,因为总人数可能不超过20个。单个要求是加载人员并在稍后阶段检索名称。 有没有人有任何想法?

3 个答案:

答案 0 :(得分:10)

舌头回答:如果你做插入而没有别的,最简单的数据结构什么都不是 - 只是不存储任何东西。这使插入成为瞬时,因为你完全没有做任何插入。

更真实的答案:如果您只是想尽快存储一堆数据,并且您有一个总元素数量的上限,只需使用一个数组并跟踪下一个免费索引。如果数组存储指向元素的指针,则每次插入都是指针赋值加上下一个自由索引的增量。如果您正在存储副本,那么每次插入都会生成一个副本(您无论如何都必须这样做)和一个增量。由于存储元素的任何结构必须存储指针或副本,因此开销只是一个增量,我相信它的价格便宜得多。

希望这有帮助!

答案 1 :(得分:1)

除了检查答案的舌头(这是我的第一个想法),你最多有20个人,只需使用一个阵列。

答案 2 :(得分:0)

如果你确定总的对象/节点总是小于20,那么数组是最好的。使用数组中的索引进行Retreival并且是最快的。 如果您不确定数据结构的大小,那么我将建议一个列表,因为如果您没有查找插入顺序,则列表中的插入是最快的。如果需要插入顺序,则转到链表。 Hashtable可能不是一个选项,因为它有额外的同步开销,这里不需要。 如果您想避免重复,可以使用Set接口,而且不必担心检索顺序。

相关问题