アルゴリズム a


[UP]

Notice for the remote access.

お知らせ

この授業の情報は、Web サイト ( http://ynitta.com/class/ ) と GoogleDrive に置きます。

GoogleDrive には @gm.tsuda.ac.jp のアカウントでアクセスして下さい。 当初は@gm.tsuda.ac.jp全員がアクセス可能ですが、ある時点で履修登録者のみに制限します

pdf形式の資料を配布する際は GoogleDrive 中の pdf/ フォルダに置きます。 また、授業中に書き込みを行ったpdf形式のテキストなど、追加の資料は GoogleDrive のhandwritings/ フォルダに置くことがあります。

Web サイト http://ynitta.com/class/ 上の「課題提出Web」などの学内専用ページに学外からアクセスする場合は、 GoogleDrive の passwd.txt に記載されている [Web用] ユーザ名 と パスワード を利用して下さい。


algorithm a

[授業内容]

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

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

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

「アルゴリズムa」の学習後、「アルゴリズムb」や「アルゴリズムc」で、 整列、バックトラック、動的計画法などの高度なアルゴリズムを学びます。

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


Warning: include(java_version.php): Failed to open stream: ���Τ褦�ʥե������ǥ��쥯�ȥ�Ϥ���ޤ��� in /home/xs339464/ynitta.com/public_html/class2026/algoA/all/contents.php on line 60

Warning: include(): Failed opening 'java_version.php' for inclusion (include_path='.:/opt/php-8.0.30/data/pear:/home/xs339464/bin:/home/xs339464/bin:/home/xs339464/bin') in /home/xs339464/ynitta.com/public_html/class2026/algoA/all/contents.php on line 60

[エディタ について]

エディタは何をどのように使っても構いません。

ただしVSCode を使用される場合に、package を使用しない Java ファイルを新規に作成するときは次の手順で行うことを(本授業では)強く勧めます。

  1. 「ファインダー」を用いて、本授業用のフォルダを作成する。(ここでは ~/Documents/class/algoA/ とします)
  2. VSCode を起動する。
  3. 画面上のメニューからFileOpen Folder ... → 書類 → class → algoA を選択する。
  4. 左のファイルメニューに alogA (= ALGOA) が現れる。



  5. 左メニューの algoA (=ALGOA) ファイルから「ファイルを追加」を選んで、ファイルを追加し、名前を*.java を指定する。(たとえば Sample.java)







Warning: include(cygwin_shell.php): Failed to open stream: ���Τ褦�ʥե������ǥ��쥯�ȥ�Ϥ���ޤ��� in /home/xs339464/ynitta.com/public_html/class2026/algoA/all/contents.php on line 64

Warning: include(): Failed opening 'cygwin_shell.php' for inclusion (include_path='.:/opt/php-8.0.30/data/pear:/home/xs339464/bin:/home/xs339464/bin:/home/xs339464/bin') in /home/xs339464/ynitta.com/public_html/class2026/algoA/all/contents.php on line 64

[授業日程]

講義: 5206
演習: S205ws

教科書


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

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

http://ynitta.com/class/algoA/

出席状況:


課題提出状況


資料


参考書

アルゴリズムに関する本は、たくさん出版されています。 プログラミング言語を Java に限定するとなかなか選択肢は少なくなってしまいますが、 アルゴリズムそのものを図解・説明している本や、 C (C++) の簡略コードでプログラムを記述している本は大変参考になると思います。 いくつか例を挙げておきます。 「プログラミングコンテストチャレンジブック [第2版] 」(通称: 蟻本)は名著だと思います。


問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本
米田 優峻 (著)
出版社: 技術評論社 (2021/12/25)
発売日: 2021/12/25
ISBN-10: 4297125218
ISBN-13: 978-4297125219

アルゴリズム図鑑 絵で見てわかる26のアルゴリズム
石田 保輝 (著), 宮崎 修一  (著)
出版社: 翔泳社 (2017/6/6)
発売日: 2017/6/6
ISBN-10: 4798149772
ISBN-13: 978-4798149776

新・明解Javaで学ぶアルゴリズムとデータ構造 第2版
柴田 望洋 (著)
出版社: SBクリエイティブ; 第2版 (2020/12/9)
ISBN-10: 4815606005
ISBN-13: 978-4815606008

プログラミングコンテストチャレンジブック [第2版] 
~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~
秋葉拓哉, 岩田陽一, 北川宜稔 (著)
出版社: マイナビ; 第2版 (2012/1/28)
ISBN-10: 4839941068
ISBN-13: 978-4839941062


Warning: include(java_encoding.php): Failed to open stream: ���Τ褦�ʥե������ǥ��쥯�ȥ�Ϥ���ޤ��� in /home/xs339464/ynitta.com/public_html/class2026/algoA/all/index.php on line 152

Warning: include(): Failed opening 'java_encoding.php' for inclusion (include_path='.:/opt/php-8.0.30/data/pear:/home/xs339464/bin:/home/xs339464/bin:/home/xs339464/bin') in /home/xs339464/ynitta.com/public_html/class2026/algoA/all/index.php on line 152