バブルソートのベストケース
バブルソートは、隣接する要素の順序が間違っている場合に繰り返し交換することで機能する最も単純な並べ替えアルゴリズムの1つと見なされています。バブルソートアルゴリズムを使用すると、最大の要素(最小から最大にソートしていると仮定)がリストまたは配列の一番上まで「バブル」することがわかります。
例:
要素のリストまたは配列を昇順(最小から最大)で並べ替えたいとします。List=(3,1,2)
スワッピングが発生しなかったため、配列は次のようになります。すでに昇順で並べ替えられています!
ベストケース
ここで、同じアルゴリズムをもう一度試してみましょう。ただし、今回は、要素がすでに昇順で並べ替えられているベストケースシナリオを使用します(昇順)希望します。
スワッピングが発生しなかったため、アルゴリズムは2回の比較のみを行い、配列内の要素数はn = 3と呼びます。このアルゴリズムのベストケースの要素は、n-1回の比較のみを行います。n-1= O(n)
使用した手順またはアルゴリズムは次のとおりです。
このアルゴリズムはフラグを使用します要素が交換されたかどうかを確認する、これにより、バブルソートアルゴリズムのベストケースを、バブルソートの別の実装のようにO(n²)ではなくO(n)にすることができます。
上記のアルゴリズム
最悪のケース= O(n²)
ベストケース= O(n)
バブルソートアルゴリズムの別の実装を見てみましょう。
BUBBLESORT(A)
1 for i = 1 to A.length - 1
2 for j = A.length downto i + 1
3 if A < A
4 exchange A with A
上記のアルゴリズム
ワーストケース= O(n²)
ベストケース= O(n²)
ワーストケース
配列またはリストを並べ替えましょう=(3,2,1)これは、上記のアルゴリズムを使用して、リストが希望する順序とは完全に逆の順序(昇順)である場合の最悪のケースです。
最初のパス:
(3,2,1)->要素を比較します3 & 2
(2,3 、1)->スワップ3 & 2 since 2 < 3
( 2,3,1)->要素を比較する3 & 1
(2,1,3)->スワップ1 & 3 since 1 < 3
2番目のパス:
(2,1,3)->要素2を比較します& 1
(1,2,3)->スワップ2 & 1から1 < 2
(1,2,3)->比較要素2 & 3
(1,2,3)-> 2 3
これで両方のループのループが終了したため、配列を昇順で並べ替える必要があります。
上記の2番目の例では、4つの比較を行ったことに注意してください。配列内の要素の数を「n」= 3と呼びます。したがって、行われる比較の数は(n-1)²であり、(n-1)²= O(n²)
また、コーディング/プログラミングの面接の準備をするのに最適な本は、コーディング面接のクラッキングと呼ばれます。ソートアルゴリズムと問題解決に慣れるために役立つので、必ずチェックしてください!
この記事を読んでいただき、ありがとうございます。皆様のお役に立てば幸いです。学習を続けてください。さらにアルゴリズム分析ビデオが必要な場合は、私のYouTubeチャンネルにアクセスしてサブスクライブしてください(randerson112358 & compsci112358)
アルゴリズム分析とプログラミングに関するその他のコンテンツ/ビデオ:
YouTubeチャンネル:
randerson112358:https://www.youtube.com/channel/UCaV_0qp2NZd319K4_K8Z5SQ
compsci112358:
ウェブサイト:
漸化式に関するビデオチュートリアル:
アルゴリズム分析に関するビデオチュートリアル:
Twitter: