Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Data structures 一种高效的电话簿数据结构_Data Structures_Trie_Avl Tree - Fatal编程技术网

Data structures 一种高效的电话簿数据结构

Data structures 一种高效的电话簿数据结构,data-structures,trie,avl-tree,Data Structures,Trie,Avl Tree,我用AVL树实现了一个电话簿。但许多人说Trie最适合实现电话簿。我是否应该将我的项目更改为Trie,或者是否有其他充分的理由表明,在电话簿的情况下,AVL tree比Trie更有效。Trie是一种索引结构,在键长度不同时特别有用 AVL(Adelson Velskii and Landis)树是一种具有平衡条件的二叉搜索树 在实际使用中,当N较大但L(长度)不是很大且单词不是那么随机时,首选Trie,如存储英语词典。 但是当L非常大且“单词”是随机的时,喜欢存储随机生成的长字符 密码、长哈希值

我用AVL树实现了一个电话簿。但许多人说Trie最适合实现电话簿。我是否应该将我的项目更改为Trie,或者是否有其他充分的理由表明,在电话簿的情况下,AVL tree比Trie更有效。

Trie是一种索引结构,在键长度不同时特别有用

AVL(Adelson Velskii and Landis)树是一种具有平衡条件的二叉搜索树

在实际使用中,当
N
较大但
L
(长度)不是很大且单词不是那么随机时,首选Trie,如存储英语词典。 但是当
L
非常大且“单词”是随机的时,喜欢存储随机生成的长字符 密码、长哈希值等,最好选择AVL树


有关更多信息,请查看这是对这两种树结构之间差异的分析。

选择适当的数据结构是为了优化特定任务以满足您最重要的功能

电话簿需要极快的搜索速度,所以链表将是一个糟糕的选择,因为它的大O在搜索时间上的顺序是N

AVL树的平均搜索时间为(logn),但这意味着您有某种层次顺序来对树进行排序


我个人的建议是一个bucket散列(链表的散列表)。虽然有点复杂,但您可以使用他们的名字作为哈希函数的键,并且具有相同键的人可以存储在链接列表中(n搜索时间)。虽然这个大的O仍然是N,但是当你考虑经常被忽略的常数因素时,它的平均情况下运行时间会大大减少。< / P>你试图优化哪些操作?什么对你重要?电话簿中有多少条目?(我假设这只是一个玩具项目或任务,但细节将影响您应该选择的数据结构。)