web-dev-qa-db-ja.com

ソートされたリンクリストにバイナリ検索O(log n)を適用する方法は?

最近、リンクリストに関する興味深い質問に出会いました。ソートされた単一リンクリストが提供され、このリストから1つの要素を検索する必要があります。

時間の複雑さはO(log n)を超えてはなりません。これは、このリンクリストにバイナリ検索を適用する必要があるようです。どうやって?リンクリストは、バイナリ検索アルゴリズムを適用しようとするとランダムアクセスを提供しないため、リストの長さを見つけて中央に移動する必要があるため、O(n)に到達します。

何か案は?

34
u449355

リストのスキップ を使用する必要があります。これは、通常のリンクリストでは不可能です(通常のリストで可能かどうかを本当に知りたいです)。

29
taskinoor

リンクリストでは、バイナリ検索はO(log n)の複雑さを達成しない可能性がありますが、この研究作業でここで説明するように、ダブルポインターメソッドを使用することで少し達成できます: http://www.ijcsit.com /docs/Volume%205/vol5issue02/ijcsit20140502215.pdf

2
sundar