ソート - バブルソート

まず、アルゴリズムは思いました

各旅行は(または「前ビッグ小」)の交換ルール「旧大小の後に」対比較、プレスを記録していきます。


第二に、アルゴリズムのプロセス

ここに画像を挿入説明


第三に、達成するために

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の順序は同じままなので、この既知のソーティングアルゴリズムは安定であり、この時間をソート。

おすすめ

転載: blog.csdn.net/starter_____/article/details/93928127