[ad_1]
こんにちは、リンクリストのO(1)削除のプログラムは知っていますが、時間計算量がO(log n)なので、ロジックをどのように進めることができますか。 論理的に教えてください…
私が試したこと:
ヒープ検索を使用しようとしましたが、達成できません…
解決策 1
見る ビッグオー表記 – Wikipedia[^]。
解決策 2
O(1) は、複雑さに応じて直線的に増加するパフォーマンス コストを指します。 これを減らす唯一の方法は、効率的な検索機能を備えたコレクションを使用することです。 リンクされたリストは検索において効率的ではありません。 アン 順序なしマップ[^] 標準テンプレート ライブラリのは、非常に効率的な検索を備えたコレクションの例です。 あ ハッシュ表[^] は、高パフォーマンスのコレクションの一般的な例です。 ハッシュ テーブルは非常に単純なので、自分で実装する必要がある場合に最適な例となるでしょう。
解決策 3
これ以上のパフォーマンスを達成することはできません O(1)
任意のリンクリスト上で。
時間計算量を改善するには、順序付きリストを使用する必要があります (駄洒落をご容赦ください)。 次に、二分探索を実行できます。
解決策 4
引用:論理的に教えてください。
そのようなロジックは存在しないのではないか、リンクリストではなくなっているのではないかと心配しています。
リンク リストはデータ構造であり、各データ構造には独自の長所と短所があり、データの用途に応じてデータ構造を選択します。
ヒープ検索を実行するためにリストを別のデータ構造にコピーした場合、通常、その構造を構築するコストの方が、その構造を使用するメリットよりも高くなります。
[ad_2]
コメント