うたかたの日々

育児中のパパ目線から、日々買わされるボーイズトイなどのレビューを書いていきます。

SBクリエイティブ プログラミングの宝箱 アルゴリズムとデータ構造

SBクリエイティブからリリースされていた、プログラミングの宝箱 アルゴリズムとデータ構造です。
初版は古く、2003年頃に出版されてから、2011年頃にグラフ理論(構造)を追加した第2版として改訂され、今現在に至ります。
流行り廃りが激しい近年の技術書においては、もはや古典なのかもしれませんが、未だに読まれていると言うことは名著と言えるのかもしれません。
コンセプトは表題のとおり、サーチ、ソートなどのアルゴリズムやリスト、スタックと言ったデータ構造に関する開発技法について。
或いは、上級者向けの技術書を読むための取っ掛かり。
プログラミング言語は、C、C++Javaに対応しています。

過去のレビューは、下記のリンクから。

auraclover.hatenablog.com

f:id:auraclover:20200422102015j:plain

子が休校中につき、競技プログラミングに取り組んでいる真っ最中です。
そこで「基本的なアルゴリズムのパターン解法を備えておく必要がある」と言うような要望を聞かされたので、書架から数冊を選んで手渡した中の一冊でした。
あとは「過去問を解きまくることで、どうにかなりそう」とも言っていたのですが。
将来的にIT業界や技術、研究職を志望しているわけではなく、負けず嫌いとか夢があるだとか、そうゆうことではなくて。
ただ単純に「プライドの問題」なのだろう、と察します。
それにゴールデンウィークが明けてしまったら、小学校が再開される予定と聞かされているので、とにかく急いでいるのでしょう。
平日の日中を否応なく拘束されてしまう本人にとっては、かなり切実な様子です。
(意見や感想には個人差があります)
悩めるパパとしては、見守るしかない立場なので、実に面白い状況だと捉えています。

 

本書に関しては、章立てに加え、C、C++Javaに対応したサンプルコードが掲載されています。
第1章 ソート
第2章 サーチ
第3章 リスト
第4章 スタック&キュー
第5章 再帰呼び出し
第6章 ツリー構造
第7章 マップとハッシュ
第8章 浮動小数点型と数値計算
第9章 文字列検索
第10章 バックトラック法と幅優先探索
第11章 動的計画法
第12章 アルゴリズムで遊ぶ ~ テンパズルに挑戦

第2版では、グラフ理論(構造)が追加されました。
第13章 グラフ構造

以前にレビューを書いた『新・明解C言語で学ぶアルゴリズムとデータ構造』と重複する内容を含むのですが。

auraclover.hatenablog.com

基本情報技術者試験に沿った書かれ方だったので、今回はリファレンスに寄った使い方を求めているのだろうと察しました。
おそらく学力から言えば、理系の大学1年生ぐらいか、その前後であれば、ちょうど良く読める程度のはずです。
また本書では、C++にも対応しているところが大きかったのでしょう。
子にしてみれば、C言語に不満はないものの、競技プログラミングに対しては、C++の方がジャッジを通し易いと言います。

因みに、ごく個人的には競技プログラミングの経験がありません。
育児をしていなければ、特別に関心を持つようなこともなかったと思います。
ついでに日本国内で実施された学生向けのプログラミングコンテストなどにも、ざっくりと目を通してみたのですが。
たった一言で言ってしまえば、(言葉が過ぎるため、自粛しておきます;)レベルでした。
子から見ても、まったく興味を持てなかったらしく、現時点においては競技プログラミング一択になってしまったのも無理はありません。
(意見や感想には個人差があります)