【解決方法】リンク リストの削除にかかる時間の最小化


こんにちは、リンクリストのO(1)削除のプログラムは知っていますが、時間計算量がO(log n)なので、ロジックをどのように進めることができますか。 論理的に教えてください…

私が試したこと:

ヒープ検索を使用しようとしましたが、達成できません…

解決策 1

解決策 2

O(1) は、複雑さに応じて直線的に増加するパフォーマンス コストを指します。 これを減らす唯一の方法は、効率的な検索機能を備えたコレクションを使用することです。 リンクされたリストは検索において効率的ではありません。 アン 順序なしマップ[^] 標準テンプレート ライブラリのは、非常に効率的な検索を備えたコレクションの例です。 あ ハッシュ表[^] は、高パフォーマンスのコレクションの一般的な例です。 ハッシュ テーブルは非常に単純なので、自分で実装する必要がある場合に最適な例となるでしょう。

解決策 3

これ以上のパフォーマンスを達成することはできません O(1) 任意のリンクリスト上で。
時間計算量を改善するには、順序付きリストを使用する必要があります (駄洒落をご容赦ください)。 次に、二分探索を実行できます。

解決策 4

引用:

論理的に教えてください。

そのようなロジックは存在しないのではないか、リンクリストではなくなっているのではないかと心配しています。
リンク リストはデータ構造であり、各データ構造には独自の長所と短所があり、データの用途に応じてデータ構造を選択します。

ヒープ検索を実行するためにリストを別のデータ構造にコピーした場合、通常、その構造を構築するコストの方が、その構造を使用するメリットよりも高くなります。

コメント

タイトルとURLをコピーしました