アルゴリズムで頭の体操 1

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

PHPのための基礎-ソフトウェア工学としてのPHPプログラミング PHPの基礎ではなく、PHP「のため」の基礎としたのには理由があります。連載「PHP開発プロジェクトの夢と現実(http://www.thinkit.co.jp/free/article/0705/5/1/)」で、PHPは習得しやすい

須藤 克彦

2008年5月2日 20:00

PHPのための基礎-ソフトウェア工学としてのPHPプログラミング

 PHPの基礎ではなく、PHP「のため」の基礎としたのには理由があります。連載「PHP開発プロジェクトの夢と現実(http://www.thinkit.co.jp/free/article/0705/5/1/)」で、PHPは習得しやすいプログラミング言語であることを書きました。また、そのことによる弊害も述べました。

 今回の連載では「言語としての」PHPについてはある程度わかっているのだけれど、いまひとつプログラミングに自信が持てないという、初級または中級の方々を主な対象として、プログラミングの基礎を解説します。本連載は、「ソート」に焦点をあててその考え方を具体的に説明していきましょう。

改めてソートとは

 ソート(sort)とは、ものをある規則に合うように並び替えることです。ここではソートアルゴリズムを考えて、ソートを行う関数を作ってみます。

 こういうと、こんな声が聞こえてきそうです。「PHPにはすでに『sort()関数』があるのだから、何もわざわざ自分でソート関数を作る必要はないだろう」と。

 そのとおりです。実際にアプリケーション開発の現場でソート関数を作っていたら、よけいな工数をかけるだけだと、上司から怒られるでしょう。

 しかし、どのようなメカニズムでsort()関数が動作するか、その仕組みや原理、さらにいえば理論を知ることは、ソフトウェア技術者として「必要」なことです。ソートは一見単純ですが、奥深いものを持っています。

 実際のプロジェクトが始まってしまえば、そのような原理や理論を学んでいる暇はありません。戦いが始まる前に腕力を鍛えておく必要があります。これらのアルゴリズムを学ぶことは、つまりは腕力を鍛えることです。そして、腕力を鍛えるには、先人たちの知恵に学び、また、すでにあるものでもそれを自分で(=独力で)作ってみることが一番です。ですので、今さらながらですが、ソートのプログラムを作ってみたいと思います。

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る