Pythonによるアルゴリズムとデータ構造の基礎

Pythonによるアルゴリズムとデータ構造の基礎

  • 永田 武 広島工大教授 博士(工学)

半期の講義で習得できる内容。基本情報処理技術者試験問題も含めた豊富な章末問題も掲載。

ジャンル
発行年月日
2020/06/01
判型
A5
ページ数
194ページ
ISBN
978-4-339-02907-9
Pythonによるアルゴリズムとデータ構造の基礎
在庫あり

定価

2,860(本体2,600円+税)

カートに入れる

電子版を購入

購入案内

  • 内容紹介
  • まえがき
  • 目次
  • 著者紹介
  • 広告掲載情報

 機械学習やデータ分析などの分野でPythonというプログラミング言語の名前を聞く機会が多くなっています。しかし,CやJavaなどの言語に親しんできた者からすると,Pythonに戸惑うことも多いように感じます 。一番の違和感は,インデントでブロックを決定し,ブロックの終了文字や,文末の;(セミコロン)も不要であるという行儀の悪さです。しかし,慣れてくると,この方法は省エネプログラミング(ステップ数削減)に有効であることが理解できるようになりました。
 著者の経験では,書籍を用いて新しいプログラミング言語を学ぶ場合に,構文の説明から始まる退屈なページに集中力が途切れることが多々ありました。しかし,本書はデータ構造とアルゴリズムに力点を置いて記述していますので,あまり退屈せずに読み進めることができると思います。また,多くの書籍のようにコードの断片のみでなく,動作するためのすべてのコードを記載していますので,自分の手でプログラムを作成し動作を確認することができます。その過程で,Pythonの記述力の高さと,コード量の少なさに驚くと思います。そして,本書の終盤になるとデータ構造とアルゴリズムの関係とPythonの理解が深まり,プログラミングができるようになった自分に気付くと思います。

本書は,大学,短大と高等専門学校の学生,あるいは情報系企業に入社した新人の方を対象として記述したものです。アルゴリズムとデータ構造は,今日の情報化された現代社会の膨大な情報を蓄積・管理して,利用するための情報処理システムの開発の基礎となる内容です。

アルゴリズムとは,問題を解くための手順を表現したもので,コンピュータにおける情報処理の基盤となるものです。そして,データ構造とは,データの集合をコンピュータで効率的に扱うために一定のルールに従って格納するときの形式のことです。多くの場合,データ構造が決まれば,利用するアルゴリズムは比較的容易に決まります。しかし場合によっては,与えられた仕事をこなすための最適なアルゴリズムを利用するために,そのアルゴリズムを使うことが前提となっているデータ構造が選択されることもあります。このようにアルゴリズムとデータ構造は切っても切れない関係にあります。

本書は,姉妹図書の『Javaによるアルゴリズムとデータ構造の基礎』(コロナ社)の章立てに従ってPythonで記載したものです。学校においては,週一回の半期で履修できる程度の内容になっています。各章の最後には,関連プログラムの項を設けました。ここでは,実用的なプログラムを掲載していますので,卒業研究などの場面でも役に立つと思います。OSはWindowsでもLinuxでもかまいません。自分の手で作成し動作を確認すると理解が深まると思います。

本書がアルゴリズムとデータ構造の学習への扉となれば,著者にとって望外の喜びです。

最後に,本書の出版の機会を与えていただいた株式会社コロナ社に厚くお礼申し上げます。

2020年3月   永田 武

1.Python入門
1.1 Pythonの特徴
1.2 Pythonプログラム開発の流れ
1.3 Pythonプログラミングの作法
1.4 Pythonプログラミングの基礎
1.5 オブジェクト指向
1.6 新しいクラスの作成
1.7 Python2とPython3
1.8 関連プログラム
演習問題

2.基本的なアルゴリズム
2.1 フローチャート
2.2 判断
2.3 反復(ループ)
2.4 基本情報技術者試験での疑似言語の記述形式
2.5 関連プログラム
演習問題

3.配列
3.1 配列とは
3.2 多次元配列
3.3 クラスの配列
3.4 関連プログラム
演習問題

4.再帰
4.1 再帰とは
4.2 階乗
4.3 ユークリッドの互除法
4.4 ハノイの塔
4.5 関連プログラム
演習問題

5.連結リスト
5.1 連結リストとは
5.2 単方向リスト
5.3 双方向リスト
5.4 循環リスト
5.5 双方向循環リスト
5.6 組込み型のリストの使用例
5.7 関連プログラム
演習問題

6.スタックとキュー
6.1 スタック
6.2 キュー
6.3 リスト型を用いたスタックとキュー
6.4 標準ライブラリのdeque型を用いたスタックとキュー
6.5 関連プログラム
演習問題

7.木構造
7.1 木構造とは
7.2 2分探索木
7.3 ヒープソート
7.4 関連プログラム
演習問題

8.探索
8.1 線形探索
8.2 番兵を用いた線形探索
8.3 2分探索
8.4 ハッシュ法
8.5 関連プログラム
演習問題

9.ソート(その1)
9.1 ソートとは
9.2 バブルソート
9.3 選択ソート
9.4 挿入ソート
9.5 関連プログラム
演習問題

10.ソート(その2)
10.1 シェルソート
10.2 クイックソート
10.3 マージソート
10.4 関連プログラム
演習問題

11.グラフ
11.1 グラフとは
11.2 最短経路問題
11.3 関連プログラム

付録
A.viによるソースファイルの作成
B.WindowsとLinuxコマンド

参考文献
索引

掲載日:2020/11/16

情報処理学会誌「情報処理」2020年12月号広告

掲載日:2020/06/18

「自然言語処理」27巻第2号(2020年6月)

掲載日:2020/06/12

芸術科学会誌「DiVA」48号広告

掲載日:2020/06/03

「電子情報通信学会誌」2020年6月号広告