アルゴリズム a


[授業内容]

「アルゴリズム」の意味
アルゴリズム = ある問題をコンピュータを用いて効率良く解くうまいやり方、手順。

プログラミングでよく使用される基本的な「アルゴリズム」と「データ構造」 について学習します。 適切なアルゴリズムとデータ構造を用いて、効率のよいプログラムを 作成できるようになることが目標です。

まず、アルゴリズムの性能の基準となる計算量という概念について理解し、 次に、基本的なデータ構造について学習します。 基本的なデータ構造としては、配列、スタック、連結リスト、木構造 などがあります。 その後、探索に関する代表的なアルゴリズムをいくつか学習します。

「アルゴリズムa」の後を受けて、「アルゴリズムb」や「アルゴリズムc」では、 整列、バックトラック、動的計画法などの高度なアルゴリズムを学ぶ ことになります。

単なる理論的な説明だけで終わるのではなく、できるだけ 実装例(Java 言語で書いたプログラム例)を示す予定です。


[授業日程]

  • 09.06 --- 授業説明, アルゴリズムとは、計算量(線形探索を例として), 計算量(二分探索を例として)
  • 09.13 --- 配列
  • 09.20 --- スタック
  • 09.27 --- キュー
  • 10.04 --- 連結リスト, イテレータ
  • 10.11 --- 循環リスト, 双方向リスト
  • 10.18 --- 津田塾祭のため授業なし
  • 10.25 --- 木構造, 探索(二分探索木), 探索(平衡木), 平衡木資料
  • 11.01 --- 探索(ハッシュ法)
  • 11.08 --- 筆記試験

  • 教科書

    「javaプログラマのためのアルゴリズムとデータ構造」
    近藤嘉雪 著、ソフトバンクパブリッシング、2835円、
    ISBN10: 4-7973-6243-X
    ISBN13: 978-4797362435
    

    次のURLにある情報も参照して下さい。

    プリントの一部は http://nw.tsuda.ac.jp/class/algoA/ から参照できます。 が、ネットで参照できるのはあくまでも一部ですので、 授業でのみ配布されるプリントを必ず受け取って下さい。

    授業を欠席した場合は、次の授業までに当該分野の本を自分で読破し、 授業内容と同等の知識を独力で身に付けておくことが必要です。


    文字コードに関する注意

    Javaのコンパイル環境と異なるエンコーディングの ソースファイルをコンパイルするには javac コマンドの オプションとして -encoding を指定する必要があります。

      javac -encoding  エンコーディング名  javaファイル名
    
    日本語環境でよく使われるエンコーディング名は以下の通りです。
    エンコーディング名説明
    utf-88bit Unicode Transformation Format
    euc-jpEUC日本語
    iso-2022-jpISO 2022形式のJIS X 0201, 0208
    shift_jisシフトJIS(MS漢字コード)
    windows-31j日本語Windows

    システムの標準ではないエンコーディングのjavaプログラムをコンパイルするとき encoding を指定する必要があります。 津田塾大学のWindows環境で作ったソースファイルをMac上でコンパイルするときは

      % javac -encoding shift_jis  ファイル名.java
    
    Mac環境で作ったソースファイルをWindows上でコンパイルするときは
      % javac -encoding utf-8  ファイル名.java
    
    と指定して下さい。