在链表中查找元素的成本是多少?我知道在平衡二叉搜索树中找到一个元素的成本是O(log n),但链接列表呢?
答案 0 :(得分:2)
如果您对链表中的元素一无所知并且没有指向列表的指针,则在最佳情况下搜索链表中元素的成本为O(1),最差情况下为O(n) -案件。在最好的情况下,您会在最前面找到元素,在最坏的情况下,必须先查看所有元素,然后才能确定您要搜索的元素不在那里。
在最坏的情况下,这比平衡二叉搜索树慢得多,因此链表上有一些变化,旨在加快访问速度。例如,skip list使用多个并行链接列表,可以“跳过”列表中的元素。这要求元素按排序顺序存储,但它确实将查找时间减少到预期的O(log n)。
希望这有帮助!