ホームページ  >  記事  >  バックエンド開発  >  バブルソート、bubblesort_PHP チュートリアル

バブルソート、bubblesort_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:14:49787ブラウズ

バブルソート、バブルソート

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

バブルソートに関する詳細な注意事項:
/* バブルソートメソッドを使用して、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&...残りのテキスト>>




バブルソート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

tru​​e

http://www.bkjia.com/PHPjc/908125.html

技術記事

バブルソート、8 つの数値を昇順にソートします。 1 番目のループで 7 回比較し (8 つの数値について)、最大の 8 を見つけます。 2 番目のループで 6 回比較し (7 つの数値について)、最終値を見つけます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。