バブルソート(いわゆるバブルソートを泡立てるようなプロセスため)
プロセス:
(1)それぞれのデジタルのアレイ、二つの隣接する第一の比較
前部が後部よりも大きい場合(2)2つのデータを交換しました
(3)放電アウターループ行の最後まで継続同じ方法を使用して
若しくは
(1)後続の比較の最初の番号は順次、大型の順序は、次に交換します
(2)外側のループを排出するまで
自然と同じように、二種類を示すために、次の
書式#include <iostreamの>
書式#include <cstdlib>
書式#include <CTIME>
名前空間stdを使用。
無効BubbleSort1(INT []、int型LEN)
{
int型T;
以下のために(INT I 0 =; I <LEN-1; I ++)
{
(int型J = LEN-1; j>はI; j--)について
{
IF([J] <[J-1])
{
T = [J-1]。
[J-1] = [J]。
[J] = T。
}
}
COUT << iは+ 1 << "ステップ:" << "でソート結果"。
用(int型のk = 0; K <LEN; K ++)COUT << [K] <<」「。
coutの<<てendl;
}
}
無効BubbleSort2(int型*、int型のLEN)
{
int型T;
以下のために(INT I 0 =; I <LEN-1; I ++)
{
以下のための(int型J =; J <LENあり、j ++)
{
IF([J] <[i])と
{
T = [J]。
[j]は[I]を=。
[I] = T。
}
}
COUT << iは+ 1 << "ステップ:" << "でソート結果"。
用(int型のk = 0; K <LEN; K ++)COUT << [K] <<」「。
coutの<<てendl;
}
}
メインint型()
{
INT ARRAY1 [10]、配列2 [10]。
srand関数(時間(NULL)); //ここで入力乱数、それはシステム時刻を使用していますので、真にランダムな乱数を可能にするために、
裁判所未満<< "ARRAY1並べ替えの前に:" <<てendl;
(I ++; I <10、I = 0の整数)のために
{
ARRAY1 [I] =ランド()/ 1000。
coutの<< ARRAY1 [I] <<」「;
}
裁判所未満<< "ソートの前に配列2:" <<てendl;
(I ++; I <10、I = 0の整数)のために
{
配列2 [I] =ランド()/ 1000。
coutの<<配列2 [I] <<」「;
}
coutの<<てendl;
BubbleSort1(array1,10)。
裁判所未満<< "ARRAY1ソート後:" <<てendl;
以下のために(INT iが= 0; I <10; I ++)COUT <<配列1 [I] <<」「。
coutの<<てendl;
BubbleSort2(array2,10)。
裁判所未満<< "ソート後の配列2:" <<てendl;
以下のために(INT iが= 0; I <10; I ++)COUT <<配列2 [I] <<」「。
coutの<<てendl;
0を返します。
}