アルゴリズムからプログラムを学ぼう!

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

実際にバブルソートをやってみよう

 図3の(1)のようにカードが並んでいるところを想像してください。

 ここでは7枚のカードが並んでいます。それぞれの位置を0からはじめて6まで番号を付けました。

 これを右端から順に、左隣と見比べます。左から始めてもかまいませんが、バブルソートはなぜか右から始めるのがお約束のようですのでこのようにします。その意味は次回以降で説明します。

 右端から見始めて、視点を1つ1つずらしながら、もし左側が右側よりも大きければコロコロと入れ替えていきましょう。

 はじめに、6番目と5番目のものを比べます。左の4の方が右の2よりも大きいので、図3の(2)のように入れ替えます。

 次に、5番目と4番目を比べます。図3の(3)のようにここでも入れ替わります。

考え方を押さえておこう

同様のことを左端に達するまで繰り返します。その結果どうなるかというと、図3の(4)のようになります。

 これで一巡目の入れ替えはおしまいです。右端にあった2が左から3番の位置まで「上がって」きました。また、1が一番左に来ました。

 続いてここまでと同様の手順を繰り返しますが、2回目は左端の0番目まで見る必要はありません。見ても構いませんが左端のものと交換する可能性はないからです。その理由は2回目以降で詳しくで説明します。

 よって2回目は1番目のところまでを見ます。3回目は2番目まで・・・と繰り返します。そして最後には図3の(5)のようになるはずです。ぜひ皆さんも実際に試してみてください。

 次回は、このバブルソートをプログラムにしていきます。この考え方をよく理解しておいてください。

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

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

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

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

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