はじめに
前回は挿入ソートを振り返ったので、次はバブルソート。
バブルソートとは
隣り合う数字の並び順が逆になっている要素がなくなるまで、以下の処理を繰り返すソート手法。
- 配列の末尾から順に隣接する要素の大小を確認
- 大小関係が逆ならば要素の入れ替え(交換)をする
具体例
計算量
ソースコード
数字配列を受け取って、並び替えて返す関数を作成。
vector<long> bubbleSort(vector<long> v)
{
long n = v.size();
for (long i = 0; i < n - 1; i++) // 確定した数字の数
{
for (long j = n - 1; j >= i + 1; j--) // 比較を行う範囲
{
if (v[j - 1] > v[j])
{
long tmp = v[j];
v[j] = v[j - 1];
v[j - 1] = tmp;
}
}
}
return v;
}