大岩 元 慶応大学環境情報学部 ohiwa@sfc.keio.ac.jp 再帰 データ構造とプログラミング(8) 大岩 元 慶応大学環境情報学部 ohiwa@sfc.keio.ac.jp.

Slides:



Advertisements
Similar presentations
プロセスの生成とコマンドの実行 プロセスの生成とコマンドの実行 プロセス生成のシステムコール プロセス生成のシステムコール プロセス生成のプログラム例 プロセス生成のプログラム例 プログラム実行のシステムコール プログラム実行のシステムコール 子プロセスの終了を待つシステムコール 子プロセスの終了を待つシステムコール.
Advertisements

プログラムのパタン演習 解説.
アルゴリズムと データ構造 第9回 再帰的アルゴリズム.
プログラミング言語としてのR 情報知能学科 白井 英俊.
4-3:高度なソートアルゴリズム① (分割統治法にもとづくソート)
アルゴリズムとデータ構造 第1章 アルゴリズムと計算量 4月26日
2009/10/9 良いアルゴリズムとは 第2講: 平成21年10月9日 (金) 4限 E252教室 コンピュータアルゴリズム.
情報工学概論 (アルゴリズムとデータ構造)
プログラミング言語論 プログラミング言語論 プログラミング言語論 演習1 解答と解説 演習1解答と解説 1 1.
アルゴリズムとデータ構造 補足資料6-3 「サンプルプログラムcat3.c」
データ構造と アルゴリズム 第八回 知能情報学部 新田直也.
大岩 元 慶応大学環境情報学部 二分木 データ構造とプログラミング(10) 大岩 元 慶応大学環境情報学部
第13回 ハッシュテーブルを使ったプログラム ~高速に検索するには?~.
二分探索木によるサーチ.
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
ハッシュ表 データ構造とプログラミング(12)
2009/11/6 整列アルゴリズムの復習 第6講: 平成21年11月6日 (金) 4限 E252教室 コンピュータアルゴリズム.
関数の定義.
アルゴリズムとデータ構造1 2005年7月15日
情報工学概論 (アルゴリズムとデータ構造)
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
高度プログラミング演習 (08).
メタ解法設計者のための Python超入門
二分探索木における要素削除 データ構造とプログラミング(10)
第7回課題 フィボナッチ数列 (コード:p.171) について,fib(4) を呼び出したときの起こる出来事は以下の通りである.
クイックソート.
大岩 元 慶応大学環境情報学部 再帰 データ構造とプログラミング(8) 大岩 元 慶応大学環境情報学部
ソフトウェア制作論 平成30年10月24日.
Cプログラミング演習 第10回 二分探索木.
復習+α JBuilderの使い方を思い出す。 配列とGUI 再帰とマージソート 木と二分木の探索
高度プログラミング演習 (05).
高度プログラミング演習 (05).
プログラミング 4 整列アルゴリズム.
アルゴリズムとデータ構造1 2005年6月24日
アルゴリズムとデータ構造 2010年6月21日
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
PADのテンプレート 処理、連接 x0 ← x x ← x0+ u(x0) err ← |x - x0| 判断(選択) x2 ← x3
PADのテンプレート 処理、連接 x0 ← x x ← x0+ u(x0) err ← |x - x0| 判断(選択) x2 ← x3
プログラミング 4 探索と計算量.
アルゴリズム論 (第12回) 佐々木研(情報システム構築学講座) 講師 山田敬三
再帰的手続き.
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
プログラミング 4 木構造とヒープ.
プログラミングⅠ 平成31年1月7日 森田 彦.
アルゴリズムとデータ構造1 2006年7月11日
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
補講:アルゴリズムと漸近的評価.
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
高度プログラミング演習 (09).
計算の理論 I -数学的概念と記法- 火曜 12:50~14:20 大月 美佳 2004年4月20日.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
情報工学概論 (アルゴリズムとデータ構造)
計算機プログラミングI 第4回 2002年10月31日(木) 問題解決とアルゴリズム クラスメソッドと手続きの抽象化 最大公約数
計算の理論 I -数学的概念と記法- 月曜3校時 大月 美佳.
高度プログラミング演習 (11).
東京工科大学 コンピュータサイエンス学部 亀田弘之
プログラミング基礎演習 第4回.
オブジェクト指向 プログラミング 第四回 知能情報学部 新田直也.
プログラミング 4 文字列.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
高度プログラミング演習 (07).
関数と再帰 教科書13章 電子1(木曜クラス) 2005/06/22(Thu.).
第10回 関数と再帰.
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
8.文字列処理 8.1 C#の文字列 C#では, “ABCD”のように文字列を2重引用符で挟んで指定します。ASCIIコード体系のとき,以下のような内部形式となります。 1 1 文字 ‘A’ ナル文字 1 1 文字 ‘B’ A B C D \ 文字 ‘C’ 1 1 文字 ‘D’ ナル文字‘\0’
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
プログラミング序論演習.
計算技術研究会 第5回 C言語勉強会 関数(function)を使う
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
Presentation transcript:

大岩 元 慶応大学環境情報学部 ohiwa@sfc.keio.ac.jp 再帰 データ構造とプログラミング(8) 大岩 元 慶応大学環境情報学部 ohiwa@sfc.keio.ac.jp

再帰の例(三角数) 再帰公式 一般公式 プログラム triangle(n) = n + triangle(n-1) triangle(n) = (n*n + n)/2 プログラム int triangle {if(n==1) return 1 else return(n + triangle(n-1))}

再帰の例(階乗) 再帰公式 プログラム n! = n*(n-1)! 0! = 1 int factorial(n) {if(n==0) return 1 else return( n*factorial(n-1)}

アナグラム 文字列に含まれる文字から形成される同じ長さの文字列 n文字から成る文字列の、全てのアナグラムを求めるには 右側の n-1 文字の全てのアナグラムを求める n文字の文字列全体を1文字分回転する 以上をn回繰り返す

二分探索 int find(double searchKey) {int lowerBound = 0; int upperBound = nElems -1; int curIn; while(true) { curIn = (lowerBound + upperBound)/2; if(a[curIn] == searchKey) return curIn;// 見つかった else if (lowerBound > upperBound) return nElms; // 見つからず else {if (a[curIn] < searchKey) lowerBound = curIn + 1; // 上半分を探索 else upperBound = curIn -1; // 下半分を探索 } // 範囲分割の終り } // while の終り  } // find()の終り

再帰による二分探索 int find(double searchKey, int lowerBound, int upperBound) { int curIn; curIn = (lowerBound + upperBound)/2; if(a[curIn]==searchKey) return curIn; // 見つかった else if(lowerBound > upperBound) return nElems; // 見つからない else // 範囲を半分にする {if (a[curIn] < searchKey) // 上半分を調べる return recfind(searchKey, curIn+1, upperbound); else // 下半分を調べる return recfind(searchKey, lowerBound, curIn-1); } // 範囲分割の終り } // recfind の終り