8 つの数字を昇順に並べ替えます。
最初のループ、7 回比較 (8 つの数値)、最大の 8 を見つけます。
2 番目のループ、6 回 (7 つの数値) を比較し、最大の 7 を見つけます。
。
1、7、8
2、6、7
3、5、6
4、4、5
5、3、4
6、2、3
7、1、2
結論: 8 つの数値をソートするには、毎回最大の数値を見つけるために 7 回の外側ループと、(中央の列のように) 7 回の比較から 1 回の比較までの内側のループが必要です。
PHP での実装:
リーリー
バブルソートc
; int main()
{
int i,j,t,a[10];
printf("10 個の整数を入力してください:\n");
for(i=0;iscanf(" %d",&a[i]);
for(i=0;ifor(j=0;jif (a [j]>a[j+1])
{t=a[j];/* a[i] と a[j] を入れ替えます */
a[j]=a[j+1]; [j+1]=t;
}
printf("ソート後のシーケンスは次のとおりです:\n");
for(i=0;iprintf("%-5d",a [i ]);
printf("\n");
return 0;
i=0 の場合:
j を 0 から開始して a[0]、a[1] のサイズを与える大きい方を a[1] に与え、次に j++、a[1] と a[2] を比較し、次に 2 つのうちの大きい方を a[2] に与えます。つまり、 a[0] 、つまり a[ の中で最大のもの1] では、a[2] が a[2] に交換され、このプロセスは j=10-i-1=9 まで続き、a[9] の 1 つが最大数 10 個に入ります。
i=1 の場合:
最大数が見つかって a[9] に配置されているため、今回ループ j は最大値 10-i-1=8 (a[8]) に達するだけで済みます。 j =0 から再度開始すると、a[j] と a[j+1] のペアごとの比較と交換が開始され、最後の大きな数値が a[8] に配置されます
次に i++、続行します...
i=9 の場合、 9 つのペアが渡されました。比較はすべての並べ替えを完了し、i n 個の数値の場合、ソートを完了するには外側のループで n-1 個のペアごとの比較のみが必要です。
降順での並べ替えについては、if(a[j]>a[j+1]) を if(a[j]
------------------------------------------------ ------------------
/* 改良されたバブル ソート方法を使用して、1 次元整数配列内の 10 個の数値を昇順にソートします*/
#include
#include
int main()
{int i,j,t,a[10],flag;
for(i) =0;iscanf("%d",&a[i]);
for(i=0;i{ flag =0; for(j=0;jif(a[j]>a[j+1])
{ t=a[j]; /* a[ i] と a を交換します。 [j] */
a[j]=a[j+1];
flag=1;
if(flag==0) }
printf( "並べ替え後のシーケンスは次のとおりです:\n&...残りのテキスト>>
バブルソートc
バブルソートに関する詳細な注意事項:
/* バブルソートメソッドを使用して、1 次元の整数配列内の 10 個の数値を昇順にソートします*/
#include
; int main()
{
int i,j,t,a[10];
printf("10 個の整数を入力してください:\n");
for(i=0;iscanf(" %d",&a[i]);
for(i=0;ifor(j=0;jif (a [j]>a[j+1])
{t=a[j];/* a[i] と a[j] を入れ替えます */
a[j]=a[j+1]; [j+1]=t;
}
printf("ソート後のシーケンスは次のとおりです:\n");
for(i=0;iprintf("%-5d",a [i ]);
printf("\n");
return 0;
i=0 の場合:
j を 0 から開始して a[0]、a[1] のサイズを与える大きい方を a[1] に与え、次に j++、a[1] と a[2] を比較し、次に 2 つのうちの大きい方を a[2] に与えます。つまり、 a[0] 、つまり a[ の中で最大のもの1] では、a[2] が a[2] に交換され、このプロセスは j=10-i-1=9 まで続き、a[9] の 1 つが最大数 10 個に入ります。
i=1 の場合:
最大数が見つかって a[9] に配置されているため、今回ループ j は最大値 10-i-1=8 (a[8]) に達するだけで済みます。 j =0 から再度開始すると、a[j] と a[j+1] のペアごとの比較と交換が開始され、最後の大きな数値が a[8] に配置されます
次に i++、続行します...
i=9 の場合、 9 つのペアが渡されました。比較はすべての並べ替えを完了し、i n 個の数値の場合、ソートを完了するには外側のループで n-1 個のペアごとの比較のみが必要です。
降順での並べ替えについては、if(a[j]>a[j+1]) を if(a[j]
------------------------------------------------ ------------------
/* 改良されたバブル ソート方法を使用して、1 次元整数配列内の 10 個の数値を昇順にソートします*/
#include
#include
int main()
{int i,j,t,a[10],flag;
for(i) =0;iscanf("%d",&a[i]);
for(i=0;i{ flag =0; for(j=0;jif(a[j]>a[j+1])
{ t=a[j]; /* a[ i] と a を交換します。 [j] */
a[j]=a[j+1];
flag=1;
if(flag==0) }
printf( "並べ替え後のシーケンスは次のとおりです:\n&...残りのテキスト>>
http://www.bkjia.com/PHPjc/908125.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/908125.html