上記の例を考えると:
O(N)
ハッシュ テーブルでそれらをバックアップすると、すべての要素が異なるかどうかを判断できます。+ ハッシュ関数のオーバーヘッドの存在を確認できますO(1)
(通常は問題になりません)。非比較ベースの並べ替えを行っている場合:
ソートアルゴリズムリスト
線形である特殊な並べ替え:
簡単にするために、自然数のリストを並べ替えるとします。並べ替え方法は、スパゲッティの未調理のロッドを使用して説明されています。リスト内の各番号 x について、長さ x のロッドを取得します。(単位を選択する実用的な方法の 1 つは、リスト内の最大数 m をスパゲッティの 1 本の完全な棒に対応させることです。この場合、完全な棒はスパゲッティの m 個の単位に等しくなります。長さ x の棒を得るには、単純に棒を壊します。 1 つの部分が x 単位の長さになるように 2 つに分割し、もう 1 つの部分は破棄します)。
すべてのスパゲッティロッドを手に入れたら、こぶしでゆるく握り、テーブルに下ろして、すべて直立させ、テーブルの表面に置きます. 次に、それぞれのロッドについて、もう一方の手を上からロッドと接するまで下げます。これが明らかに最も長いです。このロッドを取り外して、(最初は空の) 出力リストの先頭に挿入します (または、出力配列の最後の未使用スロットに配置します)。すべてのロッドが取り除かれるまで繰り返します。
したがって、あなたの問題の非常に特殊なケースが与えられた場合、あなたの声明は成り立ちます。ただし、これは一般的なケースには当てはまりません。これは、人々が TSP を解決したと考えるのと非常によく似ていますが、代わりに、特別なアルゴリズムを使用して解決できる一般的な問題の制約付きバージョンを作成しました。