在排序数组和二进制搜索树中成功进行二进制搜索的平均时间复杂度是否相同, O(log(n)) ?
此外,两者的最差情况时间复杂度是否相同, O(n) ?
在绘制图表的邻接列表时,这个问题的顺序是否正确?例如,改变这个是不对的:
https://jsfiddle.net/3sxn3yaf/
对此(在第一行中注意如何切换2和3):
答案 0 :(得分:0)
在排序数组中搜索的最差和平均值是O(Log n)。这就是因为如果对数组进行排序,您将最多进行O(Log n)跳转以得出该元素不存在的结论。
在BST中,最差和平均值分别为O(n)和O(Log n),当树完全偏斜并因此表现得像链接列表时,最坏情况发生。
他们的顺序可能在您执行的某些执行中很重要(比如DFS返回到另一个节点的不同路径),但两个邻接列表表示都是完全有效的。