まず、アルゴリズムは思いました
各旅行は(または「前ビッグ小」)の交換ルール「旧大小の後に」対比較、プレスを記録していきます。
第二に、アルゴリズムのプロセス
第三に、達成するために
void BubbleSort(int R[],int n)
{
int i,j;
int temp;
for(i=0;i<n;i++)
{
for(j=0;j<n-1-i;j++)
{
if(R[j]>R[j+1])
{
temp=R[j];
R[j]=R[j+1];
R[j+1]=temp;
}
}
}
}
第四に、アルゴリズムの性能分析
(1)時間計算の解析
いずれにせよ、外側ループは、常に1つずつ、外部nのサイクル数を実行します
-
最悪の場合を考慮して、すなわち、全配列が逆の順序であり、内側のループが必要なものを実行する、サイクル(N-1)/ 2の内部番号ので、サイクルの総数はN(N-1)/ 2、アルゴリズム複雑さはO(N ^ 2)であります
-
シーケンス全体は順序、インナーループは、単一の二重ループのサイクルに、行われていない必要があり、そうサイクルの合計数をnとすると、最良の場合を考慮して、アルゴリズムの複雑さはO(N)
-
平均的なケースでは、アルゴリズムの複雑さはO(N ^ 2)であります
複雑(2)空間分析
追加の補助空間のみTEMPであるので、空間の複雑さはO(1)であります
(3)安定性
二つの重要な値レコードAとBが等しい場合、第一のインサート、インサートBは、AがBの順序は同じままなので、この既知のソーティングアルゴリズムは安定であり、この時間をソート。