これは非常に単純な質問ですが、概念を完全に理解するのに苦労しています。
次のステートメントの違いを理解しようとしています。
- 最良の場合、O(n) の n 個の数値の配列をソートするアルゴリズムが存在します。
- すべてのアルゴリズムは、最良の場合、O(n) の n 個の数値の配列をソートします。
- 最良の場合、Omega(n) で n 個の数値の配列をソートするアルゴリズムが存在します。
- すべてのアルゴリズムは、最良の場合、Omega(n) の n 個の数値の配列をソートします。
最初に、何が私を夢中にさせているのかを説明します。1と3についてはわかりませんが、そのうちの1つは1つのケースを指定するだけで答えが正しく、もう1つは可能なすべての入力を調べることで答えが正しいことを知っています。したがって、配列が既にソートされていることを指定するだけで、そのうちの1つが真でなければならないことはわかっていますが、どれかはわかりません。私の先生はいつも、クラスで誰が一番背が高いかを調べているように考えるように言いましたが、これらのオプション (1,3) のいずれかによって、彼がそうであると言うだけで十分であり、クラス全体を調べる理由はありません.
最悪のケースを調べた場合、これらのステートメントのどれも当てはまらないことはわかっています。なぜなら、仮定や追加のメモリを使用しない最適な並べ替えアルゴリズムOmega(nlogn)
は
重要な注意:私は解決策 (一致する並べ替えを実行できるアルゴリズム) を探しているわけではありません。概念をもう少しよく理解しようとしているだけです。
ありがとうございました!