コンピュータと情報処理に必須のアルゴリズムの考え方を、日常の事例を通して、わかりやすく解説している一冊。日々の生活の中で、アルゴリズムの考え方を取り入れると、物事を速く進めることができると紹介しています。
■ソックスの左右を揃える
目的:洗濯物の山に埋もれている、すべてのソックスの左右を正しく揃える
方法①
ソックスの片割れを1つ手に取る。それに合う片割れを山から探し、1足に揃えたら脇に置く。次に別のソックスの片割れを手に取る。それに合う片割れを山から探し、揃えたら脇に置く。これを繰り返す。
方法②
ソックスの片割れを1つ手に取る。それを脇に置く。別のソックスの片割れを1つ手に取る。すでに脇に置いたものの中に、それと合うものがあれば、1足に揃えて置く。なければ、まだ片方しかないソックスの列の中に、色またはサイズが同じものの横に並べる。
方法2では、片割れのソックスを一列に並べることで、山の中にあるどの片割れソックスも、絶対に1度しか手にしないで済む。つまり、方法2は「記憶」を利用するおかげで、方法1よりも作業が速くなる。
問題を素早く解決する方法の多くは、記憶を利用しているからこそ速い。素早い問題解決法の多くは、同じ物に対して同じことを繰り返さずに済むからこそ素早いのだ。
著者 アリ・アルモッサウィ
1984年生まれ。作家、エンジニア ハーバード大学とMITメディアラボでリサーチャー、Appleでエンジニア、Mozillaでデータサイエンティストとして勤務。 2014年にウェブ上で無償公開したクリティカルシンキングの絵本AnIllustrated Book of Bad Argumentsは300万人に読まれ、20の言語に翻訳されて話題となった。 現在、サンフランシスコを拠点にコンピュータサイエンスの教育や執筆活動をしている。
帯 計算機科学者 ヴィントン・サーフ |
週刊ダイヤモンド 2019年 4/20 号 [雑誌] (NETFLIXとナベツネとコンテンツの未来) 三省堂書店有楽町店主任 岡崎 史子 |
章名 | 開始 | 目安 | 重要度 |
---|---|---|---|
まえがき | p.4 | 3分 | |
序 章 | p.12 | 4分 | |
第1章 ソックスの左右をそろえる:参照テーブルを使う | p.17 | 9分 | |
第2章 自分サイズの服を見つける:二分探索を使う | p.29 | 6分 | |
第3章 買い物に行く日は?:スタックを使う | p.37 | 8分 | |
第4章 元のところに帰りたい:パラドックス法を使う | p.47 | 9分 | |
第5章 郵便物をソートする:マージソートを使う | p.59 | 9分 | |
第6章 クールになりたい:リンク解析を使う | p.71 | 11分 | |
第7章 制限時間内で投稿する:情報の圧縮を行う | p.85 | 9分 | |
第8章 仕事を片づける:優先度付きキューを使う | p.97 | 11分 | |
第9章 ネックレスを直す:連結リストを使う | p.111 | 6分 | |
第10章 箱を見つけろ:実行時間を考える | p.119 | 6分 | |
第11章 棚に本を並べる:図書館ソートを使う | p.127 | 8分 | |
第12章 スーパーマーケットを効率良く回る:多次元配列とヒープを使う | p.137 | 13分 | |
あとがき | p.154 | 2分 |
量子の海、ディラックの深淵――天才物理学者の華々しき業績と寡黙なる生涯 [Amazonへ] |
心の社会 [Amazonへ] |
エニグマ アラン・チューリング伝 上 [Amazonへ] |