この記事では、C プログラミングでバブル ソートを実装する簡単な方法について説明します。
Cプログラミングのバブルソートとは?
の バブルソート 、要素は、ユーザーの好みに応じて、昇順または降順で繰り返し並べられます。 C での並べ替えプロセスは、最初のインデックスを検索し、1 番目と 2 番目の要素を比較することから始まります。最初のインデックス要素が 2 番目のインデックス要素より大きい場合、それらは交換されます。すべての要素がソートされるまで、2 番目のインデックス要素と 3 番目の要素に対して同じ比較と交換のプロセスが繰り返されます。
バブルソートのしくみ
これは、実装するためのステップバイステップのガイドです バブルソート Cで。
入力配列を考えてみましょう {5, 3, 1, 4, 6} .を使用してこの配列をソートするには バブルソート 、以下のパスに従います。
最初のパス:
(5 3 1 4 6) -> (3 5 1 4 6)、5 > 3 からスワップ
(3 5 1 4 6) -> (3 1 5 4 6)、5 > 1 からスワップ
(3 1 5 4 6) -> (3 1 4 5 6)、5 > 4 からスワップ
(3 1 4 5 6) -> (3 1 4 5 6)、すべての要素が順番どおりであるため、スワップはありません。
2 番目のパス:
(3 1 4 5 6) -> (1 3 4 5 6)、3 > 1 からスワップ
(1 3 4 5 6) -> (1 3 4 5 6)、すべての要素が順番どおりであるため、スワップはありません。
3 番目のパス:
(1 3 4 5 6) -> (1 3 4 5 6)、すべての要素が順番どおりであるため、スワップはありません。
配列はソートされ、スワップがなかったため、アルゴリズムは 3 回目のパスの後にこれを認識します。
C言語でのバブルソートのプログラム
以下の実装です バブルソート Cプログラミングで。
#include整数 主要 ( ) {
整数 配列 [ 100 ] 、 n 、 バツ 、 と 、 s ;
printf ( '配列要素の数を入力してください: ' ) ;
スキャン ( '%d' 、 & n ) ;
printf ( '要素の値を入力してください: ' ) ;
ために ( バツ = 0 ; バツ < n ; バツ ++ )
スキャン ( '%d' 、 & 配列 [ バツ ] ) ;
ために ( バツ = 0 ; バツ < n - 1 ; バツ ++ ) {
ために ( と = 0 ; と < n - バツ - 1 ; と ++ ) {
もしも ( 配列 [ と ] > 配列 [ と + 1 ] ) {
s = 配列 [ と ] ;
配列 [ と ] = 配列 [ と + 1 ] ;
配列 [ と + 1 ] = s ; }
}
}
printf ( 'バブル ソートを使用した後の配列のソート:' ) ;
ために ( バツ = 0 ; バツ < n ; バツ ++ )
{
printf ( '%d' 、 配列 [ バツ ] ) ;
}
戻る 0 ;
}
上記の C プログラムは、最初に 100 要素のサイズで配列を初期化し、ユーザーに並べ替える必要がある要素のサイズを入力するように要求し、ユーザーから要素を 1 つずつ入力します。配列に入力された値は、入れ子になったループを使用して並べ替えられます。順序が間違っている場合、コードは要素を交換します。最後に、for ループを使用してソートされた配列を出力します。
出力
結論
バブルソート は、配列の各要素を隣接する要素と比較し、最後の要素が並べ替えられるまで一致させることによって、配列を昇順または降順に並べ替えるために使用される並べ替えアルゴリズムです。上記のガイドラインでは、 バブルソート アルゴリズムと C プログラミングでのその実装。