Design-and-analysis-of-algorithms-bubble-sort
提供:Dev Guides
DAA-バブルソート
バブルソートは基本的なソートアルゴリズムで、必要に応じて隣接する要素を繰り返し交換することで機能します。 交換が不要な場合、ファイルはソートされます。
これは、すべてのソートアルゴリズムの中で最も単純な手法です。
実装
分析
ここで、比較の数は
- 1 + 2 + 3 + … +(n-1)= n _( n_-1)/2 = O(n ^ 2 ^)*
明らかに、グラフはバブルソートの _n ^ 2 ^ _ の性質を示しています。
このアルゴリズムでは、比較の数はデータセットに関係しません。 提供された入力要素がソート順か、逆順か、ランダムか。
メモリー要件
上記のアルゴリズムから、バブルソートが余分なメモリを必要としないことは明らかです。
例
Unsorted list: |
|5 |2 |1 |4 |3 |7 |6
1 ^ st ^反復:
5 > 2 swap |
|2 |5 |1 |4 |3 |7 |6
5 > 1 swap |
|2 |1 |5 |4 |3 |7 |6
5 > 4 swap |
|2 |1 |4 |5 |3 |7 |6
5 > 3 swap |
|2 |1 |4 |3 |5 |7 |6
5 < 7 no swap |
|2 |1 |4 |3 |5 |7 |6
7 > 6 swap |
|2 |1 |4 |3 |5 |6 |7
2 ^ nd ^反復:
2 > 1 swap |
|1 |2 |4 |3 |5 |6 |7
2 < 4 no swap |
|1 |2 |4 |3 |5 |6 |7
4 > 3 swap |
|1 |2 |3 |4 |5 |6 |7
4 < 5 no swap |
|1 |2 |3 |4 |5 |6 |7
5 < 6 no swap |
|1 |2 |3 |4 |5 |6 |7
3 ^ rd ^、4 ^ th ^、5 ^ th ^、および6 ^ th ^の繰り返しに変更はありません。
最後に、
the sorted list is |
|1 |2 |3 |4 |5 |6 |7