C言語のfor文のバブルソートを、while文に直したいのですが失敗してしまいます。
もしおかしい点がわかる方がいらっしゃいましたら、ご教授いただければと存じます。
while文(失敗)
int i; int j; i = 0; j = size - 1; while (i < size - 1) { while (j >= i + 1) { if (tab[j] < tab[j - 1]) { swap(&tab[j], &tab[j - 1]); } j--; } i++; }
for文(成功)
for (i = 0; i < size - 1; i++) { for (j = size - 1; j >= i + 1; j--) { if (tab[j] < tab[j - 1]) { swap(&tab[j], &tab[j - 1]); } } }
参考にさせていただいたサイト
https://qiita.com/omu58n/items/7e2a1055a42ef738ab8b
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。