3

谁能告诉我哪个是插入数据最快的数据结构。我的要求是加载人名,然后以超快的速度检索他们。没有排序,搜索特定名称等问题,甚至没有记忆,因为总人数可能不超过20人。唯一的要求是加载人员并在稍后阶段检索名称。有人有什么主意吗?

4

3 回答 3

10

开玩笑的回答:如果你只做插入而不做其他事情,那么最简单的数据结构根本就什么都不是——只是不存储任何东西。这使得插入是即时的,因为您完全没有做任何插入操作。

更现实的答案:如果你只是想尽可能快地存储一堆数据并且你有一个总元素数量的上限,那么只需使用一个数组并跟踪下一个空闲索引。如果数组存储指向元素的指针,则每次插入都是指针赋值加上下一个空闲索引的增量。如果您要存储副本,则每次插入都会创建一个副本(无论如何您都必须这样做)和一个增量。由于任何存储元素的结构都必须存储指针或复制到它,因此开销是单个增量,我相当有信心它会尽可能便宜。

希望这可以帮助!

于 2013-06-25T03:50:27.053 回答
1

除了检查答案中的舌头(这是我的第一个想法)并且您最多有 20 人,只需使用数组即可。

于 2013-06-25T03:53:24.597 回答
0

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

于 2013-06-25T03:54:49.097 回答