プロが教える店舗&オフィスのセキュリティ対策術

C言語のバブルソートについてなんですけど、
ループのところがi<4ではダメな理由が知りたいです。
i<4の方が最後jの方のループに入らずに終わっていいと思ったのですが、実行すると上手くソートされません。

「C言語のバブルソートについてなんですけど」の質問画像

A 回答 (3件)

for文のなかで、iとjとnumの値を出力してみたら、間違いに気付く。

    • good
    • 0

i<4 ならば Iは4未満ですのでi は0,1,2,3になます。


num[0]からnum[4]の5つ要素がありますので
i < 4ならnum[4]が対象外になります。
普通はfor (i=0; i<=4;i++) と書きます
    • good
    • 0

i=4 では j のループが回らないので問題ありません。


私の手元でも問題なく動きますよ。

ちなみにこのソートは data[i]~data[4] の中の
最小値を data[i] と交換するので
data[0]~data[3] までが埋まると data[4] は自動的に
最大値になります。したがって、i=4 の処理は不要です。

で、これは「バブルソート」ではありません。
ちょっと効率の悪い選択ソートだと思います。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!