Java排序的双链表:如何在正确的位置快速插入新节点?

Joh*_*ine 1 java algorithm linked-list binary-search doubly-linked-list

我有一个双链表,需要快速插入和删除.我可以在任何一个方向横向移动整个东西以找到插入或移除的位置,但有没有更聪明的方法来找到插入或移除点?首先想到的是二进制搜索,但由于它是一个没有索引(不是数组)的链表,我不知道如何跳转到我的链表.

什么是正确的方法,使插入和删除最快?

Old*_*eon 5

聪明的方法是走向一个Skip List.

其他方法包括缓存最近的访问并进行智能猜测,从哪里开始搜索,最后,开始或最近的点.