直感的にわかるソートの方法は?

2008年5月9日(金)
須藤 克彦

トランプを並び替えるときは?

 皆さんがあるものを番号順などで並び替えるとき、これまで説明してきたような方法を使うでしょうか?

 例えば、トランプを並べ替えることを想像してみてください。

 人間は一度に多くの数字を見ることができるので、コンピュータのような難しい(?)技巧ではなくて、もっと手早く入れ替えをするでしょう。

 では、実際はどうやっているのでしょう?

 筆者なら、こんなふうにします。

ずるいけど直感的な方法

 (1)トランプの集まりの中から一番小さいものを取り出す。

 (2)それを別のところに順に並べる。

 (3)(1)(2)を(1)のトランプがなくなるまで繰り返す。

 ちょっとずるい作戦ですね。「一番小さい」ものがわかるくらいなら苦労しません。けれど「ものをソートする」という作業に比べれば少しばかり簡単そうです。そもそも、先のバブルソートよりはよほど直感的だと思いませんか?

 プログラムを設計するときのコツはいろいろとあると思いますが、私は「自然に考える」ことだと思います。

 次回は、これをプログラムにしてみますが、それまでどのようにプログラムするか皆さん自身で考えてみてください。

神戸情報大学院大学
1980年立命館大学理工学部卒、独立系ソフトハウスに入社。CやFORTRANコンパイラなどの言語処理系の設計・開発に約10年間従事。その後ユーザ系企業でUNIXによるクライアントサーバシステムの設計・開発を主導。同時に企業の内外で人材育成に注力する。現在は神戸情報大学院大学で講師として教鞭(きょうべん)をとる。「ソフトウエア工学の基礎を勉強してオールラウンドプレーヤーを目指せ」が技術者育成についての口癖。http://www.kic.ac.jp/professors/sudo/index.html

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています