サマリー
Pythonは、簡単に学べること、読みやすいコードを書けること、広範囲にわたるアプリケーションに使えることなどの、多くの優れた特徴を持つ汎用プログラミング言語となる。Pythonは、1991年にGuido van Rossumによって開発されている。
Pythonは、比較的新しい言語であるため、オブジェクト指向プログラミング、手続き型プログラミング、関数型プログラミング等の様々な効果的なプログラミング手法を利用することができる。また、多くのライブラリやフレームワークが用意されているため、Webアプリケーション、デスクトップアプリケーション、科学技術計算、機械学習、人工知能などの分野に広く使われている。さらに、クロスプラットフォームであり、Windows、Mac、Linuxなどの多くのオペレーティングシステムで動作するという特徴を持つ。Pythonは、インタープリタ言語であるため、コンパイルの必要がなく、REPL的な仕組みを持つため、開発サイクルが早くなる。
ここでは「Pythonで学ぶアルゴリズムの教科書 一生モノの知識と技術を身につける」をベースにPythonを用いた様々なアルゴリズムの実装について述べる。
今回はそれらの読書メモについて述べる。
Pythonで学ぶアルゴリズムの教科書
本書では以下の目次に示すようにPythonプログラミングの基本とベーシックなアルゴリズムの構築について述べられている。
個々の目的に則したメインのコードはwebから見つけ出して写経するのがベターだとは思うが、それらを改造する際の、アルゴリズムやコードを書く上でのの参考情報として適しているのではないかと思う。
Chapter 1 プログラミングの基礎知識 Lesson1-1 入力と出力 Lesson1-2 変数 Lesson1-3 条件分岐 Lesson1-4 繰り返し Lesson1-5 関数 Lesson1-6 配列 Chapter 2 プログラミングの力を養う Lesson2-1 平均値を求める Lesson2-2 1からnまでを足し合わせる Lesson2-3 九九の式を算出する Lesson2-4 素数を求める Lesson2-5 nの階乗(n!)を求める Chapter 3 データ構造を学ぶ Lesson3-1 スタック Lesson3-2 キュー Lesson3-3 リスト Lesson3-4 木 Lesson3-5 グラフ Etra Lesson3-1 スタックとキューを扱う Etra Lesson3-2 データを保存する Chapter 4 サーチ Lesson4-1 線型探索 Lesson4-2 2分木 Lesson4-3 木探索 Lesson4-4 計算機について知る Etra Lesson4-1 ランダウの記号 Etra Lesson4-2 数当てゲーム Etra Lesson4-3 ビット演算を学ぶ Chapter 5 ソート Lesson5-1 ソート Lesson5-2 選択ソート Lesson5-3 バブルソート Lesson5-4 挿入ソート Lesson5-5 クイックソート Lesson5-6 マージソート Lesson5-7 ヒープソート Etra Lesson5-1 クイックソートの回帰の過程を出力する Etra Lesson5-2 再帰関数を用いたマージソート Etra Lesson5-3 Pythonのソート命令とheapqモジュールの使い方 Etra Lesson5-4 ソートの計算量と計算時間 Chapter 6 ハッシュ Lesson6-1 ハッシュとは Lesson6-2 ハッシュ関数 Lesson6-3 ハッシュテーブル Lesson6-4 衝突の回避 Etra Lesson6-1 暗号ハッシュ関数 Chapter 7 さまざまなアルゴリズムを学ぶ Lesson7-1 ユークリッドの互助法 Lesson7-2 文字列探索 Lesson7-3 最短経路問題 Etra Lesson7-1 アルゴリズムを理解するヒント Chapter 8 アルゴリズムを見える化する Lesson8-1 n次関数の曲線を描く Lesson8-2 フラクタル図形を描く Lesson8-3 迷路を解く過程を描く Etra Lesson8-1 アルゴリズムを使い分ける Etra Lesson8-2 マンデルブロー集合を描こう Appendix 1 Pythonのインストール方法 Appendix 2 テキストエディタと統合開発環境 Appendix 3 Pythonの記述ルール
コメント
[…] Pythonで学ぶアルゴリズムの教科書 […]
[…] Pythonで学ぶアルゴリズムの教科書 […]