Pythonではじめるアルゴリズム入門 伝統的なアルゴリズムで学ぶ定石と計算量(増井 敏克)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. Pythonではじめるアルゴリズム入門 伝統的なアルゴリズムで学ぶ定石と計算量

Pythonではじめるアルゴリズム入門 伝統的なアルゴリズムで学ぶ定石と計算量


形式:
書籍
発売日:
ISBN:
9784798163239
定価:
2,420(本体2,200円+税10%)
仕様:
A5・288ページ
カテゴリ:
プログラミング・開発
キーワード:
#プログラミング,#開発環境,#開発手法,#Web・アプリ開発
紙の書籍

時代が変わっても
変わらないアルゴリズムから考え方を学ぼう

本書は、初心者にも扱いやすいプログラミング言語「Python」を使用して、
アルゴリズムの基礎・考え方を学ぶ入門書です。特にPythonがはじめてという方の
ために、第1章ではPythonの基本とデータ構造について解説しています。

本書では、プログラミング入門者が最低限知っておきたいアルゴリズムの
基礎と考え方に加えて、アルゴリズムの定石とその計算量について、具体的
なサンプルコードと動作イメージを交えて丁寧に解説していきます。

【こんな方におすすめ】
・アルゴリズムをゼロから学びたい
・Pythonでプログラミングを学んでいるけれど何から手をつけていいのかわからない
・過去にアルゴリズムを学ぼうと思ったけれどPythonの資料が少なかった
・基本情報技術者試験でPythonが取り入れられるので勉強したい

【本書の特徴】
・Pythonの基本とアルゴリズムの基礎を一冊で学べる
・具体的なサンプルコードと動作イメージ(フローチャート)を交えて解説
・自分で書いて実行して動作を試しながら学習できる
・アルゴリズムの使い方や考え方だけでなく、アルゴリズムの計算量について
の理解も深まる

【扱うアルゴリズム】
FizzBuzz|フィボナッチ数列|線形探索|二分探索|幅優先探索|
深さ優先探索|番兵|8クイーン問題|n-クイーン問題|ハノイの塔|
ミニマックス法|選択ソート|挿入ソート|バブルソート|ヒープソート|
マージソート|クイックソート|最短経路問題|ベルマン・フォード法|
ダイクストラ法|A*アルゴリズム|文字列探索の力任せ法|Boyer-Moore法|
逆ポーランド記法|ユークリッドの互除法

【章構成】
■第1章 Pythonの基本とデータ構造を知る
■第2章 基本的なプログラムを作ってみる
■第3章 計算量について学ぶ
■第4章 いろいろな探索方法を学ぶ
■第5章 データの並べ替えにかかる時間を比べる
■第6章 実務に役立つアルゴリズムを知る
■Appendix Pythonのインストール

第1章 Pythonの基本とデータ構造を知る
 1.1 プログラミング言語の選択
 1.2 プログラミング言語Pythonの概要
 1.3 四則演算と優先順位
 1.4 変数と代入、リスト、タプル
 1.5 文字と文字列
 1.6 条件分岐と繰り返し
 1.7 リスト内包表記
 1.8 関数とクラス
 理解度Check!

第2章 基本的なプログラムを作ってみる
 2.1 フローチャートを描く
 2.2 FizzBuzzを実装する
 2.3 自動販売機でお釣りを計算する
 2.4 基数を変換する
 2.5 素数を判定する
 2.6 フィボナッチ数列を作る
 理解度Check!

第3章 計算量について学ぶ
 3.1 計算コストと実行時間、時間計算量
 3.2 データ構造による計算量の違い
 3.3 アルゴリズムの計算量と問題の計算量
 理解度Check!

第4章 いろいろな探索方法を学ぶ
 4.1 線形探索
 4.2 二分探索
 4.3 木構造での探索
 4.4 さまざまな例を実装する
 理解度Check!

第5章 データの並べ替えにかかる時間を比べる
 5.1 身近な場面でも使われる「並べ替え」とは?
 5.2 選択ソート
 5.3 挿入ソート
 5.4 バブルソート
 5.5 ヒープソート
 5.6 マージソート
 5.7 クイックソート
 5.8 処理速度を比較する
 理解度Check!

第6章 実務に役立つアルゴリズムを知る
 6.1 最短経路問題とは?
 6.2 ベルマン・フォード法
 6.3 ダイクストラ法
 6.4 A*アルゴリズム
 6.5 文字列探索の力任せ法
 6.6 Boyer-Moore法
 6.7 逆ポーランド記法
 6.8 ユークリッドの互除法
 理解度Check!

付録A Pythonのインストール
 A.1 Pythonの処理系を知る
 A.2 AnacondaでPythonをインストールする
 A.3 複数のバージョンのPythonを切り替える
 A.4 パッケージのインストールと削除
 A.5 インストールがエラーになった場合

付録B 理解度Check!の解答

付属データはこちら

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。
この商品の「よくある質問」はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2023年03月03日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 006
表1.2 インタプリタのデメリット
3刷
配布時に実行環境が必要
実行時に実行環境が必要
2020.07.30
1刷 084
図2.4「エラトステネスの篩」のフローチャート
3刷
上限>奇数の先頭
上限≧奇数の先頭

※リフローEPUBの場合、「図2.4 エラトステネスの篩」の後にフローチャートが表示されます。
2020.03.27
1刷 084
リスト2.19「eratosthenes.py」の下から6行目
3刷
while limit > data[0]:
while limit >= data[0]: 3刷で上記のように修正いたしましたが、内容に誤りがございました。 申し訳ございません。正しくは以下の通りです。 誤:while limit >= data[0]: 正:while (len(data) > 0) and (limit >= data[0]):

2023.03.03内容更新
2020.03.27
1刷 112
問題1の(3)上から7行目
3刷
result += plus_minus * 4 / (i * 2 - 1)
result += plus_minus * 4 / (i * 2 + 1)

※リフローEPUBの場合、第3章の末尾にある「理解度Check!」の問題1の(3)が該当箇所になります。
2020.04.02
1刷 117
図「線形探索」内
3刷
を返す
を返す

値 → 置

※リフローEPUBの場合、リスト4.2の手前にあるフローチャートが該当箇所になります。
2020.09.24
1刷 122
図4.3「対数関数のグラフ」

(画像クリックで拡大)

(画像クリックで拡大)
2021.07.28
1刷 135
リスト4.10 リスト枠の下に注記を追加
3刷
※←~の左、右、上、下は、迷路を進む番兵の目線での方向を表しています。
2020.09.24
1刷 194
「マージ」の図
3刷



「Yes」と「No」を追加します。

※リフローEPUBの場合、リスト5.11の手前にある図が該当箇所になります。
2021.03.17
1刷 223
「ヒープによる優先度付きキューを実装する」の図
2刷



赤線部分を「小さい」から「大きい」へ訂正しました。

※リフローEPUBの場合、リスト6.4の後にある2つ目の小見出し「ヒープによる優先度付きキューを実装する」の最初の図が該当箇所になります。
2020.02.03
1刷 225
リスト6.5「dijkstra2.py」上から3行目
2刷

赤い枠内を訂正しました。

※リフローEPUBの場合、コメント「# 各辺に対してコストを調べる」から6行目が該当箇所になります。
2020.02.03
1刷 233
リスト6.8「astar.py」下から3行目
[[7, 5], [10, 6], [12, 3]]
[[7, 5], [10, 3], [12, 6]]
2021.06.07
1刷 267
【問題2】
2刷
10,001,495人 (北海道+青森県+岩手県+岐阜県)
10,000,000人 (青森県+宮城県+福井県+岐阜県+鳥取県+徳島県+佐賀県+長崎県)

※リフローEPUBの場合、「付録B」の「[第4章]理解度Check!」の【問題2】の冒頭の太字部分が該当箇所になります。
2020.02.03
1刷 268
【問題2】「pref.py」の下から4行目の位置を修正
2刷

下から2行目の「search(total + pref[pos], pos + 1)」の位置を修正しました。

※リフローEPUBの場合、「付録B」の「[第4章]理解度Check!」の【問題2】のコードが該当箇所になります。
2020.02.03
3刷 084
リスト2.19「eratosthenes.py」の下から6行目
while limit >= data[0]:
while (len(data) > 0) and (limit >= data[0]):
2023.03.03

感想・レビュー

さん

2020-05-03

競技プログラミングを始めて、アルゴリズムを知らないと戦えないため購入。 勉強を兼ねてPythonで参加しているため、すごくマッチしていた。 問題はアルゴリズム自体を理解するための労力が普段の仕事以上なのと、一周したけど理解しきれたと思えない現状だけど、それは自分の問題なので何度か読み直す必要があるかなーと。 当てはまりそうなものを見つけたら適宜読み直すのもいいかもしれない。

えんど さん

atcoder用に。簡単なアルゴリズムでも実装思いつかなかったりなかなか面白かった。普通に実装する分にはライブラリあるからほとんど使う必要のないもの多いけど頭の体操にはよかった

さん

2021-04-02

基礎を実装で学ぶ。