PR

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

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

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

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

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

改めてソートとは

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

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

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

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

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

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

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

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