K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]


新規投稿 | 開設者ホームページへ戻る | ヘルプ


[1893] 質問です
返信


投稿者:D
2014/09/07 12:14:22

Link:
こんにちは。

『C言語体当たり学習 徹底入門』103ページについての質問です。

終了条件は、「すべてがソートされたとき」
すなわちsorted_countとscore_countが等しくなったとき
sorted_count < score_countの間だけ、ループを回せばよい

とありますが、

sorted_count < score_count-1

の間だけ(score_count-2の要素まで)ループを回せば、最後の要素score_count-1は整列された状態になっているのではないでしょうか。

単純選択ソートと単純交換ソートでは、ソート済範囲は絶対に動かない。
単純挿入ソートでは、ソート済範囲も動く可能性がある。

という理解です。
よろしくお願い致します。
[ この投稿を含むスレッドを表示] [ この投稿を削除]



[1894] Re:質問です
返信


投稿者:(ぱ)こと管理人
2014/09/09 02:00:02

Link:
こんにちは。

>sorted_count < score_count-1
>
>の間だけ(score_count-2の要素まで)ループを回せば、最後の要素score_count-1は
>整列された状態になっているのではないでしょうか。

最後の2要素残ったところでその2要素で交換するわけですから、
確かにループ1回無駄ではありますね。

「全部ソートされた」ことを示すのに
while (sorted_count < score_count) {

という条件式はそれはそれでわかりやすいとは思うのですが、
境界値がらみの説明を延々としているところですので、なんらかの
説明はいるように思います。

今日はちょっと無理ですが、次の週末にはWebにてフォローします。
ご指摘ありがとうございました。

[ この投稿を含むスレッドを表示] [ この投稿を削除]



[1895] Re:質問です
返信


投稿者:D
2014/09/13 13:34:55

Link:
ご返信ありがとうございました。

著者の方に質問できる場所があるって素晴らしいです。
アルゴリズムへの興味を深めることができました。
(個人的にはこの対話で十分満足です)

掲示板やWebサーバーの作り方も書籍化していただければと思います。
[ この投稿を含むスレッドを表示] [ この投稿を削除]