我无法理解为什么尝试具有O(1)查找时间并且二叉树是O(logn)。
我明白他们基本上都是树木。假设我有一个英语语言,包含最多16个字符的单词。查找时间是O(16),简化为O(1)。这是因为每个trie节点都有一个包含26个子节点的数组(字母表中有26个字母),从数组中提取的是o(1)。所以你只需要做16次拉。
对于二叉树,如果你有n个元素(比如n非常大......整个英文字母),你可以搜索中间元素,然后根据元素是否更低/更高来搜索子部分的中间部分,然后是那个等的子集......基本上每次除以2得到O(n的对数基数为2)。
每个人的逻辑都是有道理的。但我觉得我错过了什么。
两者之间的关键区别是什么允许尝试在恒定时间内完成查找,而二叉树需要O(logn)?难道你不能将二叉树构造成基本上只有2个孩子的trie吗?我想我无法确定差异。
答案 0 :(得分:0)
您可以像二叉树一样构建一个trie。搜索卡丁车树。