我想知道,那些性能之间有什么区别,前提是二进制搜索用于排序链表插入,搜索。并且在哪些情况下它们的表现不同或者可能出于某种目的,例如,列表将无法使用,反之亦然。
答案 0 :(得分:5)
你不能在链表(单人或双人)上进行二元搜索,因为没有办法到达列表的中间而没有遍历一半(从一端)。
毫无疑问,多级跳过列表的形式可以做到这一点,但在我看来,它只是模拟一个结构更复杂的二叉树。
排序链表往往是O(n)用于搜索,插入和删除(实际插入/删除本身是O(1)但你仍然必须找到插入或删除点第一)。
或者,二叉树(平衡的树)是用于搜索,插入和删除的O(log n)(所有这些操作都与树的高度成比例。)