関連サイト
本書の関連ページが用意されています。
内容紹介
図解とイラストを豊富に使った、アルゴリズムの入門書です。
本書の特長は、
1. 「アルゴリズムの意味」をイラストや図でやさしく解説
2. そのアルゴリズムに関する「プログラミング言語」のサンプルを試し、体験して納得
の2点です。
「アルゴリズム」と聞くと難しそうに思われるかも知れません。しかし、「アルゴリズム」とはズバリ、『問題を解決するための考え方』です。「このアルゴリズムは、どんな考え方で問題を解こうとしているのか?」「この手順は、何をしようとしているのか?」など、「アルゴリズムの意味」に注目して考えていくと、だんだんとアルゴリズムが分かってきます。
そして、頭の中で「意味が理解できただけ」では手ごたえがないので、本書では、実際に8種類のプログラミング言語を使ってサンプルプログラムを用意しました。あなたの使っているプログラミング言語を使って、実行してみましょう。「理解した意味の通りにアルゴリズムが動くこと」を試して、実感してください。取り上げた言語は、JavaScript、PHP、C、Java、Swift、Python、BASIC、Scratchの8種類。自分の使っている言語のサンプルを試してみるのもよし、他の言語だとどんなふうにプログラムを組み立てるのかを比較してみるもよし。もし他のプログラミング言語を知りたいと思っているなら、この言語間の「共通点」や「違い」が見えてくると、言語を理解するハードルがぐっと下がることでしょう。
「アルゴリズム」に苦手意識を持っている人、プログラムの組み立て方をもっと知りたい人に役立つ一冊です。
書誌情報
- 著者: 森巧尚(著), まつむらまきお(イラスト)
- ページ数: 300ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: マイナビ出版
対象読者
著者について
森巧尚
Webゲームクリエイター。FlashやiPhoneアプリなどのオリジナルゲームのコンテンツ制作、執筆活動、関西学院大学非常勤講師など。
著書:『これからはじめる Apple Watchアプリ開発入門』(電子書籍、マイナビ出版)、『iOSアプリ開発 AutoLayout徹底攻略』(電子書籍、マイナビ出版)、『SwiftではじめるiPhoneアプリ開発の教科書【Swift 2&Xcode 7対応】』(マイナビ出版)、『現場で通用する力を身につける iPhoneアプリ開発の教科書【 iOS 7&Xcode 5対応】』(マイナビ出版)、『よくわかるiPhoneアプリ開発の教科書[iOS 6 & Xcode4.6対応版]』(マイナビ出版)、『やさしくはじめるiPhoneアプリ開発の学校【 iOS 7.1対応版】(』マイナビ出版)、『基本からしっかりわかる ActionScript 3.0』(マイナビ出版)、『おしえて!! FLASH 8 ActionScript』(マイナビ出版)、『Flash プロフェッショナル・スタイル[CS3対応]』(共著、マイナビ出版)、『小学生でもわかるiPhoneアプリのつくり方』(秀和システム)、『iPhoneのゲームアプリをつくろう!』(秀和システム)、『ActionScript + CGIプログラミング』(SBクリエイティブ)、『プロとして恥ずかしくないFlashの大原則』(共著、エムディエヌコーポレーション)など
まつむらまきお
まんが家、イラストレーター。Adobe Flash(現Adobe Animate)やペンタブレットについてのテクニカル記事、書籍執筆も手がける。成安造形大学イラストレーション領域教授。
目次
第1章 アルゴリズムってなに?
- 1.1 アルゴリズムってなに?
- アルゴリズムとは?
- 1.2 プログラムとアルゴリズムの違い
- コンピュータを使う目的とは?
- プログラムとは?
- アルゴリズムとは?
- 1.3 アルゴリズムを考えよう
- 問題は、整理して考える
- ライブラリは「先人の知恵」
- アルゴリズムを自分で作ろう!
- 1.4 いろいろなアルゴリズム
第2章 いろいろなプログラミング言語
- 2.1 いろいろなプログラミング言語
- プログラミング言語年表
- プログラミング言語実行環境マップ
- 2.2 JavaScript
- JavaScript言語とは?
- 実行環境
- 開発環境例
- 文法の特徴
- 2.3 PHP
- PHP言語とは?
- 実行環境
- 開発環境例
- 文法の特徴
- 2.4 C
- C言語とは?
- 実行環境
- 開発環境例
- 文法の特徴
- 2.5 Java
- Java言語とは?
- 実行環境
- 開発環境例
- 文法の特徴
- 2.6 Swift
- Swift言語とは?
- 実行環境
- 開発環境例
- 文法の特徴
- 2.7 Python
- Python言語とは?
- 実行環境
- 開発環境例
- 文法の特徴
- 2.8 BASIC
- BASIC言語とは?
- 実行環境
- 開発環境例
- 文法の特徴
- 2.9 Scratch
- Scratch言語とは?
- 実行環境
- 開発環境例
- 文法の特徴
第3章 データ構造とアルゴリズムの基本
- 3.1 データ構造
- コンピュータが扱えるデータ
- データ構造
- 3.2 フローチャート
- アルゴリズムを図式で書く方法
- フローチャートで使う記号
- 3.3 アルゴリズムの基本
- 3つの基本構造
- 3.4 アルゴリズムからプログラムへ
- イメージ
- フローチャート
- プログラム
第4章 簡単なアルゴリズム
- 4.1 簡単なアルゴリズム
- フローチャート
- プログラム
- 4.2 合計値
- アルゴリズムのイメージと手順
- フローチャート
- プログラム
- 4.3 平均値
- アルゴリズムのイメージと手順
- フローチャート
- プログラム
- 4.4 最大値、最小値
- アルゴリズムのイメージと手順
- フローチャート
- プログラム
- 4.5 データの交換
- アルゴリズムのイメージと手順
- フローチャート
- プログラム
第5章 サーチアルゴリズム
- 5.1 サーチ(探索)アルゴリズムとは
- サーチアルゴリズムとは
- 5.2 リニアサーチ(線形探索法)
- ひとつひとつ調べていく探索法
- アルゴリズムのイメージ
- サーチアルゴリズムの工夫
- 具体的な手順
- フローチャート
- このアルゴリズムの特徴(まとめ)
- プログラム
- 5.3 バイナリサーチ(二分探索法)
- 範囲を半分に絞りながら探していく探索法
- アルゴリズムのイメージ
- 具体的な手順
- フローチャート
- このアルゴリズムの特徴(まとめ)
- プログラム
第6章 ソートアルゴリズム
- 6-1 ソート(整列)アルゴリズムとは
- 6-2 バブルソート(単純交換法)
- 泡のように値を浮かび上がらせるソート
- アルゴリズムのイメージ
- 具体的な手順
- フローチャート
- このアルゴリズムの特徴(まとめ)
- プログラム
- 6-3 選択ソート(単純選択法)
- 最小値を探して、先頭から順番に並べていくソート
- アルゴリズムのイメージ
- 具体的な手順
- フローチャート
- このアルゴリズムの特徴(まとめ)
- プログラム
- 6-4 挿入ソート(単純挿入法)
- データを抜き出して、正しい位置に挿入していくソート
- アルゴリズムのイメージ
- 具体的な手順
- フローチャート
- このアルゴリズムの特徴(まとめ)
- プログラム
- 6-5 シェルソート
- 大雑把にソートを行ってから、だんだん精度を高めていくソート
- アルゴリズムのイメージ
- 具体的な手順
- フローチャート
- このアルゴリズムの特徴(まとめ)
- プログラム
- 6-6 クイックソート
- 大小2つのグループに分割し、分割をくり返していくソート
- アルゴリズムのイメージ
- 具体的な手順
- フローチャート
- このアルゴリズムの特徴(まとめ)
- プログラム
付録
- 付録1 オブジェクトをソートする
- 付録2 シャッフルするアルゴリズム
- 付録3 O記法
- 付録4 アルゴリズムの組み合わせ一覧