検索と並べ替えアルゴリズムの基本操作の複雑さ[終了]


8

Wikiには優れたチートシートがありますが、これは含まれていません。比較またはスワップの。(ただし、通常、スワップ数はその複雑さを決定します)。そこで、以下を作成しました。次の情報は正しいですか?エラーがある場合はお知らせください。修正します。

挿入ソート:

  • 平均ケース/最悪ケース: ; 入力がすでに降順でソートされている場合に発生しますΘ(n2)
  • ベストケース: ; 入力がすでにソートされている場合Θ(n)
  • 比較の数:、最悪の場合&にΘ N 最良の場合にΘ(n2)Θ(n)
  • スワップ数:最悪/平均ケース&Θ(n2)が最良の場合0

選択ソート:

  • 平均ケース/最悪ケース/最良ケース:Θ(n2)
  • 比較数:Θ(n2)
  • スワップ数:最悪/平均ケース&0Θ(n)0最良のケースの中で最もにおいて、アルゴリズムは、あなたが所定の位置に要素を入れ替えたら、あなたは再びそれに触れることはありません、Nスワップが必要です。

マージソート:

  • 平均ケース/最悪ケース/最良ケース:。入力がソートされているかどうかはまったく関係ありませんΘ(nlgn)
  • 比較数:最悪の場合は&最良の場合はΘ n 。サイズn&mの2つの配列をマージしていると仮定します。ここでn <Θ(n+m)Θ(n)n<m
  • スワップ数:スワップなし![ただし、インプレースソートではなく追加のメモリが必要]

クイックソート:

  • 最悪の場合:Θ(n2) ; 入力はすでにソートされています
  • ベストケース: ; ピボットが配列をちょうど半分に分割するときΘ(nlogn)
  • 比較数:最悪の場合&Θ n l o g nΘ(n2)最良の場合にΘ(nlogn)
  • スワップ数:最悪の場合0Θ(n2)0、最良の場合は

バブルソート:

  • 最悪の場合:Θ(n2)
  • ベストケース:Θ(n) ; ソート済み
  • 比較数:Θ(n2)最悪の場合と最良の場合の
  • スワップ数:最悪の場合0Θ(n2)0、最良の場合は

線形検索:

  • 最悪の場合:Θ(n) ; 検索キーが存在しないか、最後の要素
  • ベストケース:Θ(1) ; 最初の要素
  • 比較数:最悪の場合は、最良の場合は1Θ(n)1

バイナリ検索:

  • 最悪のケース/平均のケース:Θ(logn)
  • ベストケース: ; キーが中間要素の場合Θ(1)
  • 比較数:最悪/平均の場合&1の場合Θ(logn)1

  1. 基本的な検索と並べ替えのアルゴリズムのみを検討しました。
  2. 上記は、ソートアルゴリズムが昇順で出力を生成することを前提としています。
  3. 出典:素晴らしいCLRSとこのWiki

この(種類の)質問のメリットについて話し合うには、チャットに参加してください。
ラファエル

1
これは問題ではないので話題外です。
David Richerby 14

私も閉じることに投票しました。「質問」がかなり広いので、これもサルベージに挑戦するのは難しいかもしれません(基本的な検索および並べ替えアルゴリズムは正確に何ですか?)
Juho

回答:


-2

バブルソートの一般的なアルゴリズムでは、最悪の場合の比較はですが、特殊なアルゴリズムでは、前のパスでスワップがあったことを示すフラグを追加します。スワップがなかった場合、配列は既にソートされているため、ループから抜け出します。この場合、比較はnΘ(n2)n 0ではなくです。

クイックソートでは、最悪の場合のスワップは述べました。クイックソートの最悪のケースのシナリオは、すべての要素がソートされた順序にある​​ため、スワップが発生しないためゼロになるはずです。n2


1
Θ(n2)O(nlogn)n2

コメントを編集していただきありがとうございます。私はSEを初めて使用します。さて、私はこれについてより明確であったはずです。上記のコメントを編集しました。私は、バブルソートの場合、nでなければならない場合、ベストケースの比較を0にすることはできないと言っていました。配列がソートされ、フラグを使用して前のパスでのスワップを示している場合。前のパスでスワップがない場合、配列はすでにソートされているため、最初のパスでn回の比較を実行する必要はありません。クイックソートについては、時間の複雑さではなく、比較とスワップについて話しています。最悪の場合、すべての要素がソートされるため、スワップする必要はありません。
Nikhil Mahajan 14

O(nlogn)O(nlogn)O()O(nlogn)n2O(nlogn)メモリを。複雑さの測定の最善のケースは、O(nlogn)

正解です。クイックソートの回答を編集しました。
Nikhil Mahajan 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.