最近、リンクリストに関する興味深い質問に出会いました。ソートされた単一リンクリストが提供され、このリストから1つの要素を検索する必要があります。
時間の複雑さはO(log n)
を超えてはなりません。これは、このリンクリストにバイナリ検索を適用する必要があるようです。どうやって?リンクリストは、バイナリ検索アルゴリズムを適用しようとするとランダムアクセスを提供しないため、リストの長さを見つけて中央に移動する必要があるため、O(n)に到達します。
何か案は?
リストのスキップ を使用する必要があります。これは、通常のリンクリストでは不可能です(通常のリストで可能かどうかを本当に知りたいです)。
リンクリストでは、バイナリ検索はO(log n)の複雑さを達成しない可能性がありますが、この研究作業でここで説明するように、ダブルポインターメソッドを使用することで少し達成できます: http://www.ijcsit.com /docs/Volume%205/vol5issue02/ijcsit20140502215.pdf