オンラインで疑似コードを見ずに独自のバブル ソート アルゴリズムを実装しようとしていましたが、成功したので、私のコードはオンラインで見た例とは大きく異なります。それらはすべて、真または偽のスワップされた変数の処理を伴います。私の実装にはそれがまったく含まれていないので、バブルソートを作成しませんでしたか?
これは私がオンラインで見た例です:
for i = 1:n,
swapped = false
for j = n:i+1,
if a[j] < a[j-1],
swap a[j,j-1]
swapped = true
→ invariant: a[1..i] in final position
break if not swapped
終わり
これが私の実装です:
void BubbleSort(int* a, int size)
{
while (!arraySorted(a, size))
{
int i = 0;
while (i < (size-1))
{
if (a[i] < a[i+1])
{
i++;
}
else
{
int tmp = 0;
tmp = a[i+1];
a[i+1] = a[i];
a[i] = tmp;
i++;
}
}
}
}
働きは同じですが、何か違うのでしょうか?