概要
バブルソート(bubble sort)というのは、 ソートの中でも最も単純な部類に入るアルゴリズムで、 たいていの教科書ではソートの章の1番最初に出てきます。 プログラムは単純ですが、比較回数・要素の交換回数ともに多く、低速です。 「安定」な「内部」ソート。
空気の泡が水中をゆっくり登っていくように、 値の小さい要素から順に配列の前の方に移動していくさまからこのような名前が付いています。
サンプルソース
https://github.com/ufcpp/UfcppSample/blob/master/Chapters/Algorithm/Sort/BubbleSort.cs
/// <summary>
/// バブルソート。
/// </summary>
/// <param name="a">対象の配列</param>
public static void BubbleSort<T>(T[] a)
where T : IComparable<T>
{
int n = a.Length;
for (int i = 0; i < n - 1; i++)
for (int j = n - 1; j > i; j--)
if (a[j].CompareTo(a[j - 1]) < 0)
Swap(ref a[j], ref a[j - 1]);
}