連載 :
アルゴリズムで頭の体操直感的にわかるソートの方法は?
2008年5月9日(金)
プログラムを実行してみよう
書き方はほかにもあるでしょうが、ひとまずこれを動かしてみましょう。
この「bubble_sort()」をテストするために、「第1回:アルゴリズムからプログラムを学ぼう!(http://www.thinkit.co.jp/article/62/1/2.html)」の2ページ目で作ったテストプログラムにこの関数を埋め込みます。
覚えていますか?中身が空っぽだったbubble_sort()を作りましたが、図2のプログラムbubble_sort2.phpのように、その中身を今回作ったもので埋めるわけです(include でファイルを取り込んでも構いませんが、実際のテストの方法は工夫してください)。
そしてこのプログラムを実行した結果が図2の実行結果になります。
直感的に理解できるか、問い直す
さてここまではうまくいきました。前回バブルソートの手順を説明しましたが、その通りに作ったという点に注意してください。プログラムははじめに方法を考えて、それを「その通り」に作ることが大切です。
ところでこの方式はこれで良いのですが、皆さんはこのプログラムを見てどう思いましたか?
実は、筆者がこのバブルソートを初めて知ったとき、「うまいことやるなぁ」と感心した反面、とても技巧的に思いました。「プログラムとはこういうものか」とあきらめましたが、私にはこの方法が直感的には理解できませんでした。なぜ、この方法でうまくいくのか?
そもそも、人がものを並び替えるとき、こうはしませんよね?
そこで、次に別のアプローチを考えてみます。
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。