Microsoft PowerPoint - IntroAlgDs pptx

Size: px
Start display at page:

Download "Microsoft PowerPoint - IntroAlgDs pptx"

Transcription

1 アルゴリズムとデータ構造入門 年 月 4 日 大学院情報学研究科知能情報学専攻 okuo@i.kyoto-u.ac.jp,okuo@ue.org if mod( 学籍番号の下 3 桁,3) 0 if mod( 学籍番号の下 3 桁,3) if mod( 学籍番号の下 3 桁,3). Sortig. Iteral Sortig ( 内部整列 ). 挿入ソート (isertio sort). バブルソート (bubble sort) 3. マージソート (merge sort) 4. クイックソート (quick sort) 3. vector ( ベクタ ) によるSortig. ヒープソート (heap sort) 3 内部整列 (iteral sortig) データはすべて主記憶上に置いて整列. 作業領域を極力減らす.. 比較回数を極力減らす. 外部整列 (exteral sortig) 外部の記憶装置を用いて整列 3. 主記憶と補助記憶との間でのデータ転送回数を極力減らす. 4

2 逐次入力型 挿入ソート (isertio sort) ヒープソート (heap sort) バッチ型 クイックソート (quick sort) バブルソート (bubble sort) その他 ( 外部整列と共通 ) マージソート (merge sort, 併合ソート ) Java によるデモ ( ページの最後の方 ) 5 同じデータ間のもともとの順序が整列後も保存されている整列のこと 基数ソート (radix sort) では重要な性質 辞書式順序で整列で基数ソートが使われる 6. Sortig. Iteral Sortig ( 内部整列 ). 挿入ソート (isertio sort). バブルソート (bubble sort) 3. マージソート (merge sort) 4. クイックソート (quick sort) 3. vector ( ベクタ ) による Sortig. ヒープソート (heap sort) 7

3 (defie (isert-sort-pred pred records) (if (ull? records) '() (isert-elem pred (car records) (isert-sort-pred pred (cdr records)) ))) (defie (isert-elem pred elem ordered-rec) (cod ((ull? ordered-rec) (cos elem '())) ((pred elem (car ordered-rec)) (cos elem ordered-rec) ) (else (cos (car ordered-rec) (isert-elem pred elem (cdr orderd-rec) ))))) (defie (isert-sort records. args) (isert-sort-pred (if (ull? args) > (car args))) records )) 8 (isert-sort-pred > '( 3 6 4)) (isert-sort-pred > '( 3 6 4)). (isert-elem > (isert-sort-pred > '(3 6 4)) ) 3. (isert-elem > (isert-elem > 3 (isert-sort-pred > '( 6 4)) )) 4. (isert-elem > (isert-elem > 3 (isert-elem > (isert-sort-pred > '(6 4)) ))) 5. (isert-elem > (isert-elem > 3 (isert-elem > (isert-elem > 6 (isert-sort-pred > '(4)) )))) 6. (isert-elem > (isert-elem > 3 (isert-elem > (isert-elem > 6 (isert-elem > 4 (isert-sort-pred > ()) )))) 0 3

4 7. (isert-elem > (isert-elem > 3 (isert-elem > (isert-elem > 6 (isert-elem > 4 '()) )))) 8. (isert-elem > (isert-elem > 3 (isert-elem > (isert-elem > 6 '(4)) ))) 9. (isert-elem > (isert-elem > 3 (isert-elem > '(6 4)) )) 0. (isert-elem > (isert-elem > 3 (cos 6 (isert-elem > '(4))) )). (isert-elem > (isert-elem > 3 (cos 6 (cos 4 (isert-elem > '()))) )). (isert-elem > (isert-elem > 3 (cos 6 (cos 4 '())) )) 3. (isert-elem > (isert-elem > 3 (cos 6 (cos 4 '())) )) 4. (isert-elem > (isert-elem > 3 '(6 4 )) ) 5. (isert-elem > (cos 6 (isert-elem > 3 '(4 ))) ) 6. (isert-elem > (cos 6 (cos 4 (isert-elem > 3 '()))) ) 7. (isert-elem > '(6 4 3 )) 8. (cos 6 (isert-elem > '(4 3 ))) 9. (cos 6 (cos 4 (isert-elem > '(3 )))) 0. (cos 6 (cos 4 (cos 3 (isert-elem > '())))). (cos 6 (cos 4 (cos 3 (cos '())))). (6 4 3 ). 最悪の場合 (worst case) (predが とする) 大きなものから順に入ってくる 比較回数は ( i ) ( ) ( ) i. 最良の場合 (best case) 小さいものから順に入ってくる 比較回数は ( ) () i 3. 平均の場合 (average case) すでに入っているデータの半分だけ比較 比較回数は ( i ) ( ) ( i 4 ) 3 4

5 . Sortig. Iteral Sortig ( 内部整列 ). 挿入ソート (isertio sort). バブルソート (bubble sort) 3. マージソート (merge sort) 4. クイックソート (quick sort) 3. vector ( ベクタ ) によるSortig. ヒープソート (heap sort) 4 (defie (bubble-sort records. args) (let ((pred (if (ull? args) >= (car args))) (size (vector-legth records)) ) (do ((i 0 (+ i ))) ((>= i size) records) (do ((j (- size ) (- j )) (data il) ) ((<= j i)) (set! data (vector-ref records j)) (cod ((pred data (vector-ref records (- j )) ) (vector-set! records j (vector-ref records (- j )) ) (vector-set! records (- j ) data) ))))))

6 回ごとに敷居 ( ) が つずつ減る i ( i ) ( ) ( ) 7 バブルソート : 隣接データを比較 h= 飛び飛び (h) に比較 h k = 3h k- +,, の時 e.g., 40, 3, 4,.5 ( ) 8. 最悪の場合 (worst case) (predが とする) 小さいものから順に入ってくる 比較回数は ( i ) ( ) i. 最良の場合 (best case) 大きなものから順に入ってくる 比較回数は ( ) () i 3. 平均の場合 (average case) すでに入っているデータの半分だけ比較 比較回数は ( i ) ( ) ( ( ) i 4 ) 9 6

7 ソート済みのデータを前からマージ ( 併合 ) リスト版 ベクタ版 計算量は両方のデータのスキャンのみ m 個のデータと 個のデータとすると ( m ) 空間計算量も余分に ( m ) 0. Sortig. Iteral Sortig ( 内部整列 ). 挿入ソート (isertio sort). バブルソート (bubble sort) 3. マージソート (merge sort) 4. クイックソート (quick sort) 3. vector ( ベクタ ) によるSortig. ヒープソート (heap sort) 分割統治型 ラン (ru) と言う ( log ) 7

8 分割統治型 ( ベクタの場合 ) ( log ) 3. Sortig. Iteral Sortig ( 内部整列 ). 挿入ソート (isertio sort). バブルソート (bubble sort) 3. マージソート (merge sort) 4. クイックソート (quick sort) 3. vector ( ベクタ ) によるSortig. ヒープソート (heap sort) 6 (defie (quick-sort records. args) (quick-sort-pred (if (ull? args) > (car args)) records )) (defie (quick-sort-pred pred records) (if (ull? records) '() (let* ((pivot (car records)) (divisio (partitio pred pivot (cdr records) () () ))) (apped (quick-sort-pred pred (car divisio)) (cos pivot (quick-sort-pred pred (cdr divisio) )))))) (defie (partitio pred pivot records left right) (cod ((ull? records) (cos left right)) ((pred pivot (car records)) (partitio pred pivot (cdr records) left (cos (car records) right) )) (else (partitio pred pivot (cdr records) (cos (car records) left) right )))) 7 8

9 (quick-sort-pred > '( 3 6 4)) (3 6 4) () 3 (6 4) () () () 6 () (4) 4 () () 分割統治法 (divide ad coquor) 8. (quick-sort-pred > '( 3 6 4)). (partitio > '(3 6 4) '() '()) ((3 6 4) ()) 3. (apped (quick-sort-pred > '(3 6 4)) (cos (quick-sort-pred > '()) ) 3-. (partitio > 3 '(6 4) '() '()) ((6 4) ()) 3-. (apped (quick-sort-pred > '(6 4)) (cos 3 ()) ) 4-. (partitio > 6 '(4) '() '()) (() (4)) 4-. (apped () (cos 6 (quick-sort-pred > '(4))) ) 5-. (partitio > 4 '() '() '()) (() ()) 4-3. (apped () (cos 6 (apped () (cos 4 ())))) (6 4) 4-4. (6 4) (partitio > 3 '(6 4) '() '()) ((6 4) ()) 3-. (apped (quick-sort-pred > '(6 4)) (cos 3 ()) ) 3-3. (apped '(6 4) (3)) (6 4 3) 3-4. (apped '(6 4 3) (cos (quick-sort-pred > '()) ) 4-. (partitio > '() '() '()) 4-. (apped '(6 4 3) (cos '()) ) (6 4 3 ) 30 9

10 . 最悪の場合 (worst case) (predが とする) 小さいものから順に入ってくる partitioでの走査回数は i ( i) ( ) ( ). 最良の場合 (best case) 分割がバランスしている partitio の呼ばれる回数は 3. 平均の場合 (average case) log ( ) ( log ) 3 3. 平均の場合 (average case) データはすべて異なる あらゆる順列が等確率 途中での分割でも同様の仮定が成立するとする 要素のquick sort に要する時間 : T() とする 左右の結果の統合に要する時間 : c (c: 定数 ) 要素がi 要素と-i- 要素に分割されたとすると T() T(i)+T(-i-)+c T ( ) T ( i) T ( i ) c 3 要素の分割 (0,-), (, -),, (-,0) が等確率で生ずるとすると 次の漸化式を得る T( ) c T( i) ( ) T (0) 0 T () 帰納法で証明すると i 0 T ( ) log ( log ) 33 0

11 (defie (wid-mill paiter colors) (lambda (frame) (set-color (car colors)) (paiter frame) (set-color (cadr colors)) ((rotate90 paiter) frame) (set-color (caddr colors)) ((rotate80 paiter) frame) (set-color (cadddr colors)) ((rotate70 paiter) frame) )) (defie (mouli paiter colors) (lambda (frame) (cod ((pair? colors) (set-color (car colors)) (paiter frame) ((mouli (rotate90 paiter) (cdr colors)) frame) )))) (mouli color-lambda '(red blue gree yellow)) 35 (defie (right-split paiter colors) (lambda (frame) (if (= 0) (paiter frame) (let ((smaller (right-split paiter (- ) (cdr colors))) ) (if (pair? colors) (set-color (car colors))) ((beside paiter below smaller smaller)) frame) )))) (defie (corer-split paiter colors) (lambda (frame) (if (= 0) (paiter frame) (let ((up (up-split paiter (- ))) (right (right-split paiter (- ) (cdr colors))) ) (let ((top-left (beside up up)) (bottom-right (below right right)) (corer (corer-split paiter (- ) (cdr colors))) ) (if (pair? colors) (set-color (car colors))) ((beside (below paiter top-left) (below bottom-right corer) ) frame )))))) (defie (square-limit paiter colors) (let ((quarter (corer-split paiter colors))) (let ((half (beside flip-horiz quarter) quarter))) (below (flip-vert half) half)) )) ((square-limit color-letterlambda 5 '(red gree blue yellow black) ) 36 (defie (palidrome? chars) (equal? chars (reverse chars) ) (defie (make-palidrome chars) (defie (make-eve-palidrome chars) (apped chars (reverse chars)) ) (defie (make-odd-palidrome chars) (apped chars (cdr (reverse chars))) ) (palidrome? '(shi bu shi)) (palidrome? '(ta ke ya bu ya ke ta)) (palidrome? (M A D A M I M A D A M)) (defie (last-but-oe items) (reverse (cdr (reverse items))) ) (last-but-oe '(shi bu shi)) (shi bu ) 37

12 Quick Sort の正しさを証明せよ. Quick-sort アルゴリズムを書け. Quick-sort の最良計算量を求めよ 3. Quick-sort の最悪計算量を求めよ 4. Quick-sort の平均計算量を求めよ以上の説明 証明をPDFで作成し, に送付 38. 教科書 -3-3 を読み, 汎用演算システムの場合を参考にして, 多項式システムを設計する上での課題について述べ, あなたの解決方針を提案しなさい.( 最低 A4 枚, ポイント,sigle space, margiはich 以下 ). ソーティング法をつ調べて, そのアルゴリズムと計算量についてまとめなさい.( 最低 A4 枚, 同様 ) 3. 上記 つのレポートを SICP-@zeus.kuis.kyoto-u.ac.jp に送付 友達に教えてもらったら, 明記すること. Web は出展を明記.(otherwise 回答は減点 ) 39

Microsoft PowerPoint - IntroAlgDs pptx

Microsoft PowerPoint - IntroAlgDs pptx アルゴリズムとデータ構造入門 -14 2012 年 1 月 8 日 大学院情報学研究科知能情報学専攻 http://winnie.kuis.kyoto-u.ac.jp/~okuno/lecture/11/introalgds/ okuno@i.kyoto-u.ac.jp,okuno@nue.org if mod( 学籍番号の下 3 桁,3) 0 if mod( 学籍番号の下 3 桁,3) 1 if

More information

Microsoft PowerPoint - IntroAlgDs ppt

Microsoft PowerPoint - IntroAlgDs ppt アルゴリズムとデータ構造入門 -4 006 年 月 7 日 アルゴリズムとデータ構造入門 Sorting( 整列 ) Hashing( ハッシュ法 ) 奥乃 博 年前の今朝阪神 淡路大震災犠牲者死者だけで 6434 人天災は忘れた頃にやってくる ( 寺田寅彦 ) 天才は忘れた頃にやってくる ( 奥乃博 ) 月 7 日 本日のメニュー. vector ( ベクタ ). Sorting ( 整列 ) 3.

More information

Microsoft PowerPoint - Intro-Comp-Sci-07.ppt [互換モード]

Microsoft PowerPoint - Intro-Comp-Sci-07.ppt [互換モード] 情報科学基礎論 -3 007 年 4 月 4 日情報科学基礎論 3. アルゴリズムとデータ構造 Algorthms ad Data Structures 奥乃 博 data structure( データ構造 ). 配列. リスト 3. 木構造 4. ハッシング Sortg ( 整列 ). 内部整列. 外部整列 http://we.kus.kyoto-u.ac.jp/ ~okuo/lecture/07/itrocs/

More information

Microsoft PowerPoint - IntroAlgDs ppt [互換モード]

Microsoft PowerPoint - IntroAlgDs ppt [互換モード] アルゴリズムとデータ構造入門 -4 008 年 月 5 日 アルゴリズムとデータ構造入門 Sorting( 整列 ) Hashing( ハッシュ法 ) 奥乃博祝成人の日 年前の7 日阪神 淡路大震災犠牲者死者だけで6434 人天災は忘れた頃にやってくる ( 寺田寅彦 ) 天才は忘れた頃にやってくる ( 奥乃博 ) (Asahi.com より転載 ) 月 5 日 本日のメニュー. vector ( ベクタ

More information

Microsoft PowerPoint - IntroAlgDs pptx

Microsoft PowerPoint - IntroAlgDs pptx アルゴリズムとデータ構造入門 -4 202 年 0 月 23 日 大学院情報学研究科知能情報学専攻知能メディア講座音声メディア分野 http://wiie.kuis.kyoto-u.ac.jp/~okuo/lecture/0/itroalgds/ okuo@i.kyoto-u.ac.jp,okuo@ue.org TAの居室は文学部東館 4 階奥乃 研,2 研 if mod( 学籍番号の下 3 桁,3)

More information

Microsoft PowerPoint - IntroAlgDs pptx

Microsoft PowerPoint - IntroAlgDs pptx アルゴリズムとデータ構造入門 -14 2014 年 1 月 21 日 大学院情報学研究科知能情報学専攻 http://winni.kuis.kyoto-u.ac.jp/~okuno/lctur/13/introalgds/ okuno@i.kyoto-u.ac.jp,okuno@nu.org if mod( 学籍番号の下 3 桁,3) 0 if mod( 学籍番号の下 3 桁,3) 1 if mod(

More information

論理と計算(2)

論理と計算(2) 情報科学概論 Ⅰ アルゴリズムと計算量 亀山幸義 http://logic.cs.tsukuba.ac.jp/~kam 亀山担当分の話題 アルゴリズムと計算量 Fibonacci 数列の計算を例にとり アルゴリズムと計算量とは何か 具体的に学ぶ 良いアルゴリズムの設計例として 整列 ( ソーティング ) のアルゴリズムを学ぶ 2 Fibonacci 数 () Fibonacci 数 (2) = if

More information

PowerPoint Presentation

PowerPoint Presentation 算法数理工学 第 回 定兼邦彦 クイックソートの 確率的アルゴリズム クイックソートの平均的な場合の実行時間を解析する場合, 入力の頻度を仮定する必要がある. 通常は, すべての順列が等確率で現れると仮定 しかし実際にはこの仮定は必ずしも期待できない この仮定が成り立たなくてもうまく動作するクイックソートの確率的アルゴリズムを示す 確率的 radomized) アルゴリズム 動作が入力だけでなく乱数発生器

More information

PowerPoint Presentation

PowerPoint Presentation 算法数理工学 第 2 回 定兼邦彦 クイックソート n 個の数に対して最悪実行時間 (n 2 ) のソーティングアルゴリズム 平均実行時間は (n log n) 記法に隠された定数も小さい in-place ( 一時的な配列が必要ない ) 2 クイックソートの記述 分割統治法に基づく 部分配列 A[p..r] のソーティング. 部分問題への分割 : 配列 A[p..r] を 2 つの部分配列 A[p..q]

More information

PG13-6S

PG13-6S プログラム演習 I レポート 学籍番号 担当教員 : 小林郁夫 氏名 実習日平成 26 年 7 月 4 日 提出期限 7 月 11 日提出日 7 月 17 日 1 週遅れ 第 13 回 テーマ : 並べ替えのアルゴリズム 教員使用欄 15 S A B C 再提出 課題 1 バブルソートの実行画面 プログラムのソースコード // day13_akb1.cpp : コンソールアプリケーションのエントリポイントを定義します

More information

Microsoft PowerPoint - IntroAlgDs-13-4.pptx

Microsoft PowerPoint - IntroAlgDs-13-4.pptx アルゴリズムとデータ構造入門 - 年 月 9 日 大学院情報学研究科知能情報学専攻知能メディア講座音声メディア分野 http://wiie.kuis.koto-u.c.jp/~okuo/lecture//itroalgds/ okuo@i.koto-u.c.jp,okuo@ue.org TAの居室は総合研究 7 号館 階 8 号室奥乃研 (M 奥乃研 音楽情報処理 G (M 奥乃研 ロボット聴覚 G

More information

論理と計算(2)

論理と計算(2) 情報科学概論 Ⅰ アルゴリズムと計算 亀山幸義 http://logic.cs.tsukuba.ac.jp/~kam 計算とは? コンピュータが計算できることは? 1 2 関数 = 計算? NO 部分関数と計算 入力 1 入力 2 関数 出力 入力 1 入力 2 部分関数 出力 停止しない 入力 1 入力 2 コンピュータ 止まらないことがある出力 3 入力 1 入力 2 コンピュータ 出力 停止しない

More information

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1 4. ソート ( 教科書 p.205-p.273) 整列すなわちソートは アプリケーションを作成する際には良く使われる基本的な操作であり 今までに数多くのソートのアルゴリズムが考えられてきた 今回はこれらソートのアルゴリズムについて学習していく ソートとはソートとは与えられたデータの集合をキーとなる項目の値の大小関係に基づき 一定の順序で並べ替える操作である ソートには図 1 に示すように キーの値の小さいデータを先頭に並べる

More information

DA13

DA13 データ構造とアルゴリズム第 13 回 知能情報学メジャー 和 俊和 5 整列 5.1 整列とは 5.2 単純な整列アルゴリズム 5.3 挿 ソートとその拡張 5.4 ヒープソート 5.5 クイックソート 5.6 マージソート 5.7 値の 較を いない整列 5.6 マージソート 1 与えられたデータ A を A " と A # にほぼ 等分する. 2A " と A # を整列する. このとき, データ数が

More information

Taro-再帰関数Ⅲ(公開版).jtd

Taro-再帰関数Ⅲ(公開版).jtd 0. 目次 1 1. ソート 1 1. 1 挿入ソート 1 1. 2 クイックソート 1 1. 3 マージソート - 1 - 1 1. ソート 1 1. 1 挿入ソート 挿入ソートを再帰関数 isort を用いて書く 整列しているデータ (a[1] から a[n-1] まで ) に a[n] を挿入する操作を繰り返す 再帰的定義 isort(a[1],,a[n]) = insert(isort(a[1],,a[n-1]),a[n])

More information

プログラム言語及び演習Ⅲ

プログラム言語及び演習Ⅲ 平成 28 年度後期データ構造とアルゴリズム期末テスト 各問題中のアルゴリズムを表すプログラムは, 変数の宣言が省略されているなど, 完全なものではありませんが, 適宜, 常識的な解釈をしてください. 疑問があれば, 挙手をして質問してください. 時間計算量をオーダ記法で表せという問題では, 入力サイズ n を無限大に近づけた場合の漸近的な時間計算量を表せということだと考えてください. 問題 1 入力サイズが

More information

Microsoft PowerPoint - DA1_2018.pptx

Microsoft PowerPoint - DA1_2018.pptx 木の利用例 ( ゲーム木 ) データ構造とアルゴリズム ⅠB 第 回 自分の手番 / 相手の手番で分岐していく 77 例題 二人で交代に,1 から順に までの数を言う. 言う数の個数は,1 個, 個,3 個のいずれか好きなのを選んでよい 最後に を言った方が負け 必勝法 を言って, 相手に順番を回せば絶対勝ち 一方,0 を言って, 相手に順番を回せば, 相手が何個を選んでも, 次に を言える ---

More information

Microsoft PowerPoint - 05.pptx

Microsoft PowerPoint - 05.pptx アルゴリズムとデータ構造第 5 回 : データ構造 (1) 探索問題に対応するデータ構造 担当 : 上原隆平 (uehara) 2015/04/17 アルゴリズムとデータ構造 アルゴリズム : 問題を解く手順を記述 データ構造 : データや計算の途中結果を蓄える形式 計算の効率に大きく影響を与える 例 : 配列 連結リスト スタック キュー 優先順位付きキュー 木構造 今回と次回で探索問題を例に説明

More information

Microsoft PowerPoint - IntroAlgDs pptx

Microsoft PowerPoint - IntroAlgDs pptx アルゴリズムとデータ構造入門 -11 2013 年 12 月 17 日 大学院情報学研究科知能情報学専攻 http://winnie.kuis.kyotou.ac.jp/~okuno/lecture/13/introalgds/ okuno@i.kyoto-u.ac.jp if mod( 学籍番号の下 3 桁,3) 0 if mod( 学籍番号の下 3 桁,3) 1 if mod( 学籍番号の下 3

More information

Microsoft PowerPoint - algo ppt [互換モード]

Microsoft PowerPoint - algo ppt [互換モード] ( 復習 ) アルゴリズムとは アルゴリズム概論 - 探索 () - アルゴリズム 問題を解くための曖昧さのない手順 与えられた問題を解くための機械的操作からなる有限の手続き 機械的操作 : 単純な演算, 代入, 比較など 安本慶一 yasumoto[at]is.naist.jp プログラムとの違い プログラムはアルゴリズムをプログラミング言語で表現したもの アルゴリズムは自然言語でも, プログラミング言語でも表現できる

More information

PowerPoint Presentation

PowerPoint Presentation 今週のトピックス アルゴリズムとデータ構造 第 10 回講義 : 探索その 1 探索 (search) 逐次探索 (sequential search) 2 分探索 (binary search) 内挿探索 (interpolation search) Produced by Qiangfu Zhao (Since 2009), All rights reserved (c) 1 Produced

More information

簡単な検索と整列(ソート)

簡単な検索と整列(ソート) フローチャート (2) アルゴリズム論第 2 回講義 2011 年 10 月 7 日 ( 金 ) 反復構造 ( 一定回数のループ処理 ) START 100 回同じ処理を繰り返す お風呂で子供が指をおって数を数える感じ 繰り返し数を記憶する変数をカウンター ( 変数名 I をよく使う ) と呼ぶ カウンターを初期化して, 100 回繰り返したかどうか判定してそうならば終了そうでなければ処理を実行して

More information

Quick Sort 計算機アルゴリズム特論 :2017 年度 只木進一

Quick Sort 計算機アルゴリズム特論 :2017 年度 只木進一 Quick Sort 計算機アルゴリズム特論 :2017 年度 只木進一 2 基本的考え方 リスト ( あるいは配列 )SS の中の ある要素 xx(pivot) を選択 xx より小さい要素からなる部分リスト SS 1 xx より大きい要素からなる部分リスト SS 2 xx は SS 1 または SS 2 に含まれる 長さが 1 になるまで繰り返す pivot xx の選び方として 中央の要素を選択すると効率が良い

More information

アルゴリズムとデータ構造

アルゴリズムとデータ構造 講義 アルゴリズムとデータ構造 第 2 回アルゴリズムと計算量 大学院情報科学研究科情報理工学専攻情報知識ネットワーク研究室喜田拓也 講義資料 2018/5/23 今日の内容 アルゴリズムの計算量とは? 漸近的計算量オーダーの計算の方法最悪計算量と平均計算量 ポイント オーダー記法 ビッグオー (O), ビッグオメガ (Ω), ビッグシータ (Θ) 2 お風呂スケジューリング問題 お風呂に入る順番を決めよう!

More information

PowerPoint Presentation

PowerPoint Presentation 整列アルゴリズムの基礎 この回の要点 整列とは? 整列処理の意味 整列の種類 整列の計算量 整列の安定性 単純な整列アルゴリズム バブルソート 選択ソート 挿入ソート それぞれのソートの特徴と実装 整列 (Sorting) とは 整列という操作 レコードの集まりを キーの値の大小関係に従って並べ替える操作 小さい 大きい = 昇順 (ascending order) 大きい 小さい = 降順 (descending

More information

COMPUTING THE LARGEST EMPTY RECTANGLE

COMPUTING THE LARGEST EMPTY RECTANGLE COMPUTING THE LARGEST EMPTY RECTANGLE B.Chazelle, R.L.Drysdale and D.T.Lee SIAM J. COMPUT Vol.15 No.1, February 1986 2012.7.12 TCS 講究関根渓 ( 情報知識ネットワーク研究室 M1) Empty rectangle 内部に N 個の点を含む領域長方形 (bounding

More information

Microsoft PowerPoint - 13approx.pptx

Microsoft PowerPoint - 13approx.pptx I482F 実践的アルゴリズム特論 13,14 回目 : 近似アルゴリズム 上原隆平 (uehara@jaist.ac.jp) ソートの下界の話 比較に基づく任意のソートアルゴリズムはΩ(n log n) 時間の計算時間が必要である 証明 ( 概略 ) k 回の比較で区別できる場合の数は高々 2 k 種類しかない n 個の要素の異なる並べ方は n! 通りある したがって少なくとも k n 2 n!

More information

# let st1 = {name = "Taro Yamada"; id = };; val st1 : student = {name="taro Yamada"; id=123456} { 1 = 1 ;...; n = n } # let string_of_student {n

# let st1 = {name = Taro Yamada; id = };; val st1 : student = {name=taro Yamada; id=123456} { 1 = 1 ;...; n = n } # let string_of_student {n II 6 / : 2001 11 21 (OCaml ) 1 (field) name id type # type student = {name : string; id : int};; type student = { name : string; id : int; } student {} type = { 1 : 1 ;...; n : n } { 1 = 1 ;...; n = n

More information

データ構造と  アルゴリズムⅠ

データ構造と  アルゴリズムⅠ 算法数理工学 第 5 回 定兼邦彦 ハッシュ表 辞書操作 (INSERT, DELETE, SEARCH) を効率よく実現するデータ構造 応用 :C 言語のコンパイラでの記号表の管理 キー : 変数名などの文字列 ハッシュ表は実際的な場面では極めて速い 妥当な仮定の下で,SEARCH の時間の期待値は O() 最悪の場合 () 2 チェイン法を用いるハッシュ法の解析 SEARCH は最悪の場合 ()

More information

Microsoft PowerPoint - 04dandc.pptx

Microsoft PowerPoint - 04dandc.pptx 実践的幾何アルゴリズム Advanced Algorithms for Computational Geometry 第 4 回講義分割統治法と漸化式 担当 : 上原隆平 1/46 Advanced Algorithms for Computational Geometry 実践的幾何アルゴリズム 4. Divide and Conquer and Recurrence Equation Ryuhei

More information

Microsoft PowerPoint - ad11-09.pptx

Microsoft PowerPoint - ad11-09.pptx 無向グラフと有向グラフ 無向グラフ G=(V, E) 頂点集合 V 頂点の対を表す枝の集合 E e=(u,v) 頂点 u, v は枝 e の端点 f c 0 a 1 e b d 有向グラフ G=(V, E) 頂点集合 V 頂点の順序対を表す枝の集合 E e=(u,v) 頂点 uは枝 eの始点頂点 vは枝 eの終点 f c 0 a 1 e b d グラフのデータ構造 グラフ G=(V, E) を表現するデータ構造

More information

1. A0 A B A0 A : A1,...,A5 B : B1,...,B

1. A0 A B A0 A : A1,...,A5 B : B1,...,B 1. A0 A B A0 A : A1,...,A5 B : B1,...,B12 2. 3. 4. 5. A0 A, B Z Z m, n Z m n m, n A m, n B m=n (1) A, B (2) A B = A B = Z/ π : Z Z/ (3) A B Z/ (4) Z/ A, B (5) f : Z Z f(n) = n f = g π g : Z/ Z A, B (6)

More information

データ構造

データ構造 アルゴリズム及び実習 3 馬青 1 バブルソート 考え方 : 隣接する二つのデータを比較し データの大小関係が逆のとき 二つのデータの入れ替えを行って整列を行う方法である 2 バブルソートの手順 配列 a[0],a[1],,a[n-1] をソートする場合 ステップ 1: 配列 a[0] と a[1],a[1] と a[2],,a[n-2] と a[n-1] と となり同士を比較 ( 大小が逆であれば

More information

Microsoft PowerPoint - ProD0107.ppt

Microsoft PowerPoint - ProD0107.ppt プログラミング D M 講義資料 教科書 :6 章 中田明夫 nakata@ist.osaka-u.ac.jp 2005/1/7 プログラミング D -M- 1 2005/1/7 プログラミング D -M- 2 リスト 1 リスト : 同じ型の値の並び val h=[10,6,7,8,~8,5,9]; val h = [10,6,7,8,~8,5,9]: int list val g=[1.0,4.5,

More information

始めに, 最下位共通先祖を求めるための関数 LcaDFS( int v ) の処理を記述する. この関数は値を返さない再帰的な void 関数で, 点 v を根とする木 T の部分木を深さ優先探索する. 整数の引数 v は, 木 T の点を示す点番号で, 配列 NodeSpace[ ] へのカーソル

始めに, 最下位共通先祖を求めるための関数 LcaDFS( int v ) の処理を記述する. この関数は値を返さない再帰的な void 関数で, 点 v を根とする木 T の部分木を深さ優先探索する. 整数の引数 v は, 木 T の点を示す点番号で, 配列 NodeSpace[ ] へのカーソル 概略設計書 作成者築山修治作成日 2012 年 10 月 1 日 概要 ( どのような入力に対して, どのような出力をするかの概要説明 ) * 木 T および質問点対の集合 P が与えられたとき, 各質問点対 p = (v,w) P の最下位共通先祖 ( すなわち木 T において点 v と w の共通の先祖 a で,a の真の子孫には v と w の共通の先祖が無いような点 ) を見出す関数である.

More information

Microsoft PowerPoint - IntroAlgDs-05-2.ppt

Microsoft PowerPoint - IntroAlgDs-05-2.ppt アルゴリズムとデータ構造入門 2005 年 10 月 11 日 アルゴリズムとデータ構造入門 1. 手続きによる抽象の構築 1.1 プログラムの要素 奥乃 博 1. TUT Schemeが公開されました. Windowsは動きます. Linux, Cygwin はうまく行かず. 調査中. 2. 随意課題 7の追加 友人の勉学を助け,TAの手伝いをする. 支援した内容を毎回のレポート等で詳細に報告.

More information

Programming D 1/15

Programming D 1/15 プログラミング D ML 大阪大学基礎工学部情報科学科中田明夫 nakata@ist.osaka-u.ac.jp 教科書 プログラミング言語 Standard ML 入門 6 章 2005/12/19 プログラミング D -ML- 1 2005/12/19 プログラミング D -ML- 2 補足 : 再帰関数の作り方 例題 : 整数 x,y( ただし x

More information

1. A0 A B A0 A : A1,...,A5 B : B1,...,B12 2. 5 3. 4. 5. A0 (1) A, B A B f K K A ϕ 1, ϕ 2 f ϕ 1 = f ϕ 2 ϕ 1 = ϕ 2 (2) N A 1, A 2, A 3,... N A n X N n X N, A n N n=1 1 A1 d (d 2) A (, k A k = O), A O. f

More information

alg2015-4r2.ppt

alg2015-4r2.ppt 1 アルゴリズムとデータ 構造 第 4 回基本的なデータ構造 ( ヒープ ) 再帰的アルゴリズム 2017/04/18 アルゴリズムとデータ構造 2 リスト リストとは要素を 0 個以上 1 列に並べたもの リスト a 0,a 1,,a n-1 の実現法 1. 配列 (array) 前回の復習 (1/3) a 0 a 1 a n-1 2. 連結リスト (linked list) init a 0 a

More information

6-1

6-1 6-1 (data type) 6-2 6-3 ML, Haskell, Scala Lisp, Prolog (setq x 123) (+ x 456) (setq x "abc") (+ x 456) ; 6-4 ( ) subtype INDEX is INTEGER range -10..10; type DAY is (MON, TUE, WED, THU, FRI, SAT, SUN);

More information

J6 M.Shimura (1) 1 2 (2) (1824) ( (1842) 1 (1) 1.1 C.Reiter dwin require ad

J6 M.Shimura (1) 1 2 (2) (1824) ( (1842) 1 (1) 1.1 C.Reiter dwin require ad J6 M.Shimura JCD02773@nifty.ne.jp 2011 12 13 1 (1) 1 2 (2)- 12 3 14 4-20 5 24 6 33 60 (1824) ( 100 1760 1849 (1842) 1 (1) 1.1 C.Reiter dwin require addons/graphics/fvj3/dwin2.ijs 1 xy find_maxmin 4 5 calc_each_poly

More information

Microsoft PowerPoint - 06graph3.ppt [互換モード]

Microsoft PowerPoint - 06graph3.ppt [互換モード] I118 グラフとオートマトン理論 Graphs and Automata 担当 : 上原隆平 (Ryuhei UEHARA) uehara@jaist.ac.jp http://www.jaist.ac.jp/~uehara/ 1/20 6.14 グラフにおける探索木 (Search Tree in a Graph) グラフG=(V,E) における探索アルゴリズム : 1. Q:={v { 0 }

More information

Microsoft PowerPoint - 演習1:並列化と評価.pptx

Microsoft PowerPoint - 演習1:並列化と評価.pptx 講義 2& 演習 1 プログラム並列化と性能評価 神戸大学大学院システム情報学研究科横川三津夫 yokokawa@port.kobe-u.ac.jp 2014/3/5 RIKEN AICS HPC Spring School 2014: プログラム並列化と性能評価 1 2014/3/5 RIKEN AICS HPC Spring School 2014: プログラム並列化と性能評価 2 2 次元温度分布の計算

More information

Microsoft Word - no12.doc

Microsoft Word - no12.doc 7.5 ポインタと構造体 構造体もメモリのどこかに値が格納されているのですから 構造体へのポインタ も存在します また ポインタも変数ですから 構造体のメンバに含めることができます まずは 構造体へのポインタをあつかってみます ex53.c /* 成績表 */ #define IDLENGTH 7 /* 学籍番号の長さ */ #define MAX 100 /* 最大人数 */ /* 成績管理用の構造体の定義

More information

Microsoft PowerPoint - ca ppt [互換モード]

Microsoft PowerPoint - ca ppt [互換モード] 大阪電気通信大学情報通信工学部光システム工学科 年次配当科目 コンピュータアルゴリズム 探索アルゴリズム (1) 第 講 : 平成 0 年 11 月 1 日 ( 金 ) 4 限 E 教室 中村嘉隆 ( なかむらよしたか ) 奈良先端科学技術大学院大学助教 y-nakamr@is.naist.jp http://narayama.naist.jp/~y-nakamr/ 第 4 講の復習 整列アルゴリズム

More information

r3.dvi

r3.dvi 2012 3 / Lisp(2) 2012.4.19 1 Lisp 1.1 Lisp Lisp (1) (setq) (2) (3) setq defun (defun (... &aux...)...) ( ) ( nil ) [1]> (defun sisoku (x y &aux wa sa sho seki) (setq wa (+ x y)) (setq sa (- x y)) (setq

More information

INTRODUCTION TO ALGORITHMS

INTRODUCTION TO ALGORITHMS 20.7.7 関根渓 ( 情報知識ネットワーク研究室 B4) INTRODUCTION TO LGORITHMS 6. Heapsort CONTENTS 6. ヒープ (Heap) 6.2 ヒープ条件の維持 (Maintaining the heap property) 6.3 ヒープの構成 (Building a heap) 6.4 ヒープソート (The heapsort algorithm)

More information

Microsoft PowerPoint - ca ppt [互換モード]

Microsoft PowerPoint - ca ppt [互換モード] 大阪電気通信大学情報通信工学部光システム工学科 2 年次配当科目 コンピュータアルゴリズム 良いアルゴリズムとは 第 2 講 : 平成 20 年 10 月 10 日 ( 金 ) 4 限 E252 教室 中村嘉隆 ( なかむらよしたか ) 奈良先端科学技術大学院大学助教 y-nakamr@is.naist.jp http://narayama.naist.jp/~y-nakamr/ 第 1 講の復習

More information

Analysis of Algorithms

Analysis of Algorithms アルゴリズムの設計と解析 黄潤和 佐藤温 (TA) 2012.4~ Contents (L3 Search trees) Searching problems AVL tree 2-3-4 trees Red-Black tree 2 Searching Problems Problem: Given a (multi) set S of keys and a search key K, find

More information

Microsoft PowerPoint - 5.pptx

Microsoft PowerPoint - 5.pptx 5. サーチ 5-1. 線形探索 5-2.2 分探索 5-3. ハッシュ 1 サーチ問題 入力 :n 個のデータ a, a,, an a n 0 1 1 ( ここで 入力サイズは とします ) さらに キー k 出力 : k = a となる a があるときは i i となるがあるときは その位置 i,(0 i n 1) キーが存在しないとき -1 2 探索 ( サーチ ) 入力 : 5 3 8 1

More information

DVIOUT

DVIOUT 5.2. 流れ図 105 5.2 流れ図 流れ図 (flow chart) はアルゴリズムを図式化したもので コンピュータの手順となるデータの流れ 判定 実行の推移などを流れ図記号 4 を用いて描きます 流れ図のようにアルゴリズムを図式化することで 問題の定義や分析または解法がより明確となり プログラムの設計や作成に非常に役立ちます また 第三者にも的確にアルゴリズムを伝えることができます それでは

More information

Microsoft PowerPoint - DA2_2017.pptx

Microsoft PowerPoint - DA2_2017.pptx // データ構造とアルゴリズム IⅠ 第 回単一始点最短路 (II)/ 全点対最短路 トポロジカル ソート順による緩和 トポロジカル ソート順に緩和 閉路のない有向グラフ限定 閉路がないならトポロジカル ソート順に緩和するのがベルマン フォードより速い Θ(V + E) 方針 グラフをトポロジカル ソートして頂点に線形順序を与える ソート順に頂点を選び, その頂点の出辺を緩和する 各頂点は一回だけ選択される

More information

掲示用ヒート表 第34回 藤沢市長杯 2017

掲示用ヒート表 第34回 藤沢市長杯 2017 34 8 4 2 Round 1 Round 2 SEMI FINAL 30 16 8 H1 H5 H1 H1 Red 12401821 2 Red 12601360 2 1-1 Red 12501915 1 1-1 Red 12501915 4 White 12900051 4 White 12600138 3 3-1 White 12802412 2 3-1 White 12801091 1 Yellow

More information

Microsoft PowerPoint - 03dandc.pptx

Microsoft PowerPoint - 03dandc.pptx アルゴリズム論 Theory of Algorithms 第 3 回講義分割統治法と漸化式 1/46 アルゴリズム論 Theory of Algorithms Lecture #3 Divide and Conquer and Recurrence Equation 2/46 分割統治法問題を幾つかの部分問題に分解して, それぞれの部分問題を再帰的に解いた後, 部分問題の解を利用して元の問題を解く.

More information

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdio.h> #define InFile "data.txt" #define OutFile "sorted.txt" #def

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdio.h> #define InFile data.txt #define OutFile sorted.txt #def C プログラミング演習 1( 再 ) 6 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include #define InFile "data.txt" #define OutFile "sorted.txt"

More information

情報処理Ⅰ

情報処理Ⅰ Java フローチャート -1- フローチャート ( 流れ図 ) プログラムの処理手順 ( アルゴリズム ) を図示したもの 記号の種類は下記のとおり 端子記号 ( 開始 終了 ) 処理記号計算, 代入等 条件の判定 条件 No ループ処理 LOOP start Yes データの入力 出力 print など 定義済み処理処理名 end サンプルグログラム ( 大文字 小文字変換 ) 大文字を入力して下さい

More information

1. A0 A B A0 A : A1,...,A5 B : B1,...,B

1. A0 A B A0 A : A1,...,A5 B : B1,...,B 1. A0 A B A0 A : A1,...,A5 B : B1,...,B12 2. 3. 4. 5. A0 A B f : A B 4 (i) f (ii) f (iii) C 2 g, h: C A f g = f h g = h (iv) C 2 g, h: B C g f = h f g = h 4 (1) (i) (iii) (2) (iii) (i) (3) (ii) (iv) (4)

More information

org/ghc/ Windows Linux RPM 3.2 GHCi GHC gcc javac ghc GHCi(ghci) GHCi Prelude> GHCi :load file :l file :also file :a file :reload :r :type expr :t exp

org/ghc/ Windows Linux RPM 3.2 GHCi GHC gcc javac ghc GHCi(ghci) GHCi Prelude> GHCi :load file :l file :also file :a file :reload :r :type expr :t exp 3 Haskell Haskell Haskell 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 6. C Java 3.1 Haskell Haskell GHC (Glasgow Haskell Compiler 1 ) GHC Haskell GHC http://www.haskell. 1 Guarded Horn Clauses III - 1 org/ghc/ Windows

More information

43-03‘o’ì’¹‘®”q37†`51†i„¤‰ƒ…m†[…g†j.pwd

43-03‘o’ì’¹‘®”q37†`51†i„¤‰ƒ…m†[…g†j.pwd n 808 3.0 % 86.8 % 8.3 % n 24 4.1 % 54.0 % 37.5 % 0% % 20 % 30 % 40 % 50 % 60 % 70 % 80 % 90 % 0% 37.4 % 7.2 % 27.2 % 8.4 % n 648 13.6 % 18.1% 45.4 % 4.1% n 18 0% % 20 % 30 % 40 % 50 % 60 % 70 % 80 % 90

More information

Microsoft PowerPoint - 7.pptx

Microsoft PowerPoint - 7.pptx 7. 木構造 7-1. データ構造としての木 グラフ理論での木の定義 根付き木 7-2.2 分探索木 7-3. 高度な木 ( 平衡木 ) AVL 木 B 木 1 7-1 1. データ構造としての木 2 木構造 木構造を表すデータ構造の一つとしてヒープがある しかし ヒープでは 配列を用いプではるため 要素数で木の形状が一通りに決定してしまった ここでは 再帰的なデータ構造を用いることにより より柔軟な木構造が構築可能なより柔軟な木構造が構築可能なことを見ていく

More information

2

2 2 485 1300 1 6 17 18 3 18 18 3 17 () 6 1 2 3 4 1 18 11 27 10001200 705 2 18 12 27 10001230 705 3 19 2 5 10001140 302 5 () 6 280 2 7 ACCESS WEB 8 9 10 11 12 13 14 3 A B C D E 1 Data 13 12 Data 15 9 18 2

More information

201908計算

201908計算 立命館大学大学院 2018 年度実施入学試験 博士課程前期課程 情報理工学研究科情報理工学専攻 入試方式コース実施月 ページ 専門科目 備考 一般入学試験 8 月 P.1~ 2 月 P.16~ 社会人入学試験 8 月 2 月 外国人留学生入学試験 ( 日本語基準 ) 計算機科学 7 月 (2018 年 9 月入学 ) 8 月 2 月 学内進学入学試験 7 月 (2018 年 9 月入学 ) 7 月

More information

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード] 情報工学実験 II 実験 2 アルゴリズム ( リスト構造とハッシュ ) 実験を始める前に... C 言語を復習しよう 0. プログラム書ける? 1. アドレスとポインタ 2. 構造体 3. 構造体とポインタ 0. プログラム書ける? 講義を聴いているだけで OK? 言語の要素技術を覚えれば OK? 目的のプログラム? 要素技術 データ型 配列 文字列 関数 オブジェクト クラス ポインタ 2 0.

More information

<4D F736F F F696E74202D208FEE95F18F88979D5F8CE394BC30352E B8CDD8AB B83685D>

<4D F736F F F696E74202D208FEE95F18F88979D5F8CE394BC30352E B8CDD8AB B83685D> 情報処理概論 後半 5 回目 情報処理概論第 12 回 1 今日の内容 工学部で勉強したからこそ理解できるコンピュータに関する概念 パターンの表現 ( 正規表現 ) 先週までで済み 再帰呼出し 先週までで済み オブジェクト指向プログラミング プログラムの実行時間 コンピュータ ネットワーク ( インターネット ) 来週 情報処理概論第 12 回 2 再帰呼出し ( 復習 ) 情報処理概論第 12 回

More information

Microsoft PowerPoint - mp11-02.pptx

Microsoft PowerPoint - mp11-02.pptx 数理計画法第 2 回 塩浦昭義情報科学研究科准教授 shioura@dais.is.tohoku.ac.jp http://www.dais.is.tohoku.ac.jp/~shioura/teaching 前回の復習 数理計画とは? 数理計画 ( 復習 ) 数理計画問題とは? 狭義には : 数理 ( 数学 ) を使って計画を立てるための問題 広義には : 与えられた評価尺度に関して最も良い解を求める問題

More information

Fork/Join Frameworkの性能について

Fork/Join Frameworkの性能について Fork/Join Framework の性能について 2012 年 12 月 3 日湊隆行 最近 CPU クロック数の上昇が望めなくなりマルチコア化された CPU が登場するようになると マルチスレッド処理の高度化が求められるようになりました しかし スレッドはスタック領域などのメモリを必要とするので 大量のスレッドを生成するとメモリが枯渇する問題に直面しやすくなります また スレッドのプリエンプションなどにかかるオーバーヘッドなども含めると

More information

サービス付き高齢者向け住宅賠償責任保険.indd

サービス付き高齢者向け住宅賠償責任保険.indd 1 2 1 CASE 1 1 2 CASE 2 CASE 3 CASE 4 3 CASE 5 4 3 4 5 6 2 CASE 1 CASE 2 CASE 3 7 8 3 9 10 CASE 1 CASE 2 CASE 3 CASE 4 11 12 13 14 1 1 2 FAX:03-3375-8470 2 3 3 4 4 3 15 16 FAX:03-3375-8470 1 2 0570-022808

More information

★結果★ 藤沢市長杯 掲示用ヒート表

★結果★ 藤沢市長杯 掲示用ヒート表 AA 35 Round 1 8 4 Round 2 28 16 SEMI FINAL H1 H5 H1 H1 Red 12802015 1 Red 12802109 1 1-1 Red 12802015 2 1-1 Red 12702346 White 12800232 2 White 12702406 3 3-1 White 12702346 1 3-1 White 12802109 Yellow

More information

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile "data.txt" #define OutFile "surted.txt" #def

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile data.txt #define OutFile surted.txt #def C プログラミング演習 1( 再 ) 6 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include #define InFile "data.txt" #define OutFile "surted.txt"

More information

橡ソート手順比較

橡ソート手順比較 PAGE:1 [Page] 20 1 20 20 QuickSort 21 QuickSort 21 21 22 QuickSort 22 QuickSort 22 23 0 23 QuickSort 23 QuickSort 24 Order 25 25 26 26 7 26 QuickSort 27 PAGE:2 PAGE:3 program sort; { { type item = record

More information

ML Edinburgh LCF ML Curry-Howard ML ( ) ( ) ( ) ( ) 1

ML Edinburgh LCF ML Curry-Howard ML ( ) ( ) ( ) ( ) 1 More Logic More Types ML/OCaml GADT Jacques Garrigue ( ) Jacques Le Normand (Google) Didier Rémy (INRIA) @garriguejej ocamlgadt ML Edinburgh LCF ML Curry-Howard ML ( ) ( ) ( ) ( ) 1 ( ) ML type nebou and

More information

Scheme Hygienic Macro stibear (@stibear1996) 1 Scheme Scheme Lisp Lisp Common Lisp Emacs Lisp Clojure Scheme 1 Lisp Lisp Lisp Lisp Homoiconicity Lisper 2 Common Lisp gensym Scheme Common Lisp Scheme Lisp-1

More information

Microsoft PowerPoint - IntroAlgDs-06-8.ppt

Microsoft PowerPoint - IntroAlgDs-06-8.ppt アルゴリズムとデータ構造入門 2006 年 11 月 21 日 アルゴリズムとデータ構造入門 2. データによる抽象の構築 2.2 階層データ構造と閉包性 奥乃博大学院情報学研究科知能情報学専攻知能メディア講座音声メディア分野 http://winnie.kuis.kyoto-u.ac.jp/~okuno/lecture/06/introalgds/ okuno@i.kyoto-u.ac.jp 12

More information

ma_sk_3302_jp

ma_sk_3302_jp 1 4 1.1............... 4 1. CE.............................. 4 1.3................. 4 1.4........................ 4 4 3 5 3.1........................... 5 3.1.1............................. 5 3.1...........................

More information

ohp11.dvi

ohp11.dvi 19 11 ( ) 2019.4.20 1 / ( ) n O(n 2 ) O(n 2 ) ( ) 1 d n 1 n logn O(nlogn) n ( n logn C ) 2 ( ) ( merge) 2 1 1 3 1 4 5 4 2 3 7 9 7 1 2 3 4 5 7 9 1: 2 ivec merge 3 ( ) (2) int *ivec_new(int size) { int *a

More information

r11.dvi

r11.dvi 19 11 ( ) 2019.4.20 1 / 1.1 ( n n O(n 2 O(n 2 ) ( 1 d n 1 n logn O(nlogn n ( n logn C 1.2 ( ( merge 2 1 1 3 1 4 5 4 2 3 7 9 7 1 2 3 4 5 7 9 1: 2 ivec merge int *ivec_new(int size) { int *a = (int*)malloc((size+1)

More information

Microsoft Word - 13

Microsoft Word - 13 担当 : 富井尚志 (tommy@ynu.ac.jp) アルゴリズムとデータ構造 講義日程 1. 基本的データ型 2. 基本的制御構造 3. 変数のスコープルール. 関数 4. 配列を扱うアルゴリズムの基礎 (1). 最大値, 最小値 5. 配列を扱うアルゴリズムの基礎 (2). 重複除去, 集合演算, ポインタ 6. ファイルの扱い 7. 整列 (1). 単純挿入整列 単純選択整列 単純交換整列

More information

2 1 2 3 27 2 6 2 5 19 50 1 2

2 1 2 3 27 2 6 2 5 19 50 1 2 1 2 1 2 3 27 2 6 2 5 19 50 1 2 2 17 1 5 6 5 6 3 5 5 20 5 5 5 4 1 5 18 18 6 6 7 8 TA 1 2 9 36 36 19 36 1 2 3 4 9 5 10 10 11 2 27 12 17 13 6 30 16 15 14 15 16 17 18 19 28 34 20 50 50 5 6 3 21 40 1 22 23

More information

こまった専門家たち 非実践的アルゴリズム研究者 わかみず会 ( ) 前田英次郎

こまった専門家たち 非実践的アルゴリズム研究者 わかみず会 ( ) 前田英次郎 こまった専門家たち 非実践的アルゴリズム研究者 わかみず会 (2011.9.7) 前田英次郎 近藤一夫先生の質問 ある種のことはよくできるが その他のことはあまり知らない こういう人を何というか 近藤一夫 東大応用物理学科数理工学コース教授 常識を超越した人 天才ですか とある学生が言った 先生のお答 天才は何でもできるかもしれんな そういうのは専門家と言うんじゃ 糖尿病と診断されたころ読んだ本にあった話

More information

Microsoft PowerPoint - DA2_2017.pptx

Microsoft PowerPoint - DA2_2017.pptx 1// 小テスト内容 データ構造とアルゴリズム IⅠ 第 回単一始点最短路 (I) 1 1 第 章の構成. 単一始点最短路問題 単一始点最短路問題とは 単一始点最短路問題の考え方 単一始点最短路問題を解くつのアルゴリズム ベルマン フォードのアルゴリズム トポロジカル ソートによる解法 ダイクストラのアルゴリズム 1 1 単一始点最短路問題とは 単一始点最短路問題とは 前提 : 重み付き有向グラフ

More information

¥¢¥ë¥´¥ê¥º¥à¥¤¥ó¥È¥í¥À¥¯¥·¥ç¥ó ÎØ¹Ö #1

¥¢¥ë¥´¥ê¥º¥à¥¤¥ó¥È¥í¥À¥¯¥·¥ç¥ó ÎØ¹Ö #1 #1 id:motemen August 27, 2008 id:motemen 1-3 1-5 6-9 10-14 1 2 : n < a 1, a 2,..., a n > a 1 a 2 a n < a 1, a 2,..., a n > : Google: insertion sort site:youtube.com 1 : procedure Insertion-Sort(A) for

More information

Microsoft PowerPoint - DA2_2018.pptx

Microsoft PowerPoint - DA2_2018.pptx 1//1 データ構造とアルゴリズム IⅠ 第 回単一始点最短路 (I). 単一始点最短路問題 第 章の構成 単一始点最短路問題とは 単一始点最短路問題の考え方 単一始点最短路問題を解くつのアルゴリズム ベルマン フォードのアルゴリズム トポロジカル ソートによる解法 ダイクストラのアルゴリズム 単一始点最短路問題とは 単一始点最短路問題とは 前提 : 重み付き有向グラフ 特定の開始頂点 から任意の頂点

More information

Microsoft PowerPoint - IntroAlgDs-05-4.ppt

Microsoft PowerPoint - IntroAlgDs-05-4.ppt アルゴリズムとデータ構造入門 2005 年 0 月 25 日 アルゴリズムとデータ構造入門. 手続きによる抽象の構築.2 Procedures and the Processes They generate ( 手続きとそれが生成するプロセス ) 奥乃 博. TUT Scheme が公開されました. Windows は動きます. Linux, Cygwin も動きます. 0 月 25 日 本日のメニュー.2.

More information

Microsoft Word - JAPANESE - Setup Login Credentials.doc

Microsoft Word - JAPANESE - Setup Login Credentials.doc ステップ 1: TrueYou パスワードのセットアップ方法 NU ID 番号とは? これは 8 桁のネブラスカ大学 ID 番号で MavCard に表示されています 1. 次のリンクへ行って下さい : http://trueyou.nebraska.edu 2. NU ID 番号を入力して下さい 3. 仮パスワードを入力して下さい 4. Log In をクリックするか Enter キーを押して下さい

More information

Microsoft PowerPoint - mp11-06.pptx

Microsoft PowerPoint - mp11-06.pptx 数理計画法第 6 回 塩浦昭義情報科学研究科准教授 shioura@dais.is.tohoku.ac.jp http://www.dais.is.tohoku.ac.jp/~shioura/teaching 第 5 章組合せ計画 5.2 分枝限定法 組合せ計画問題 組合せ計画問題とは : 有限個の もの の組合せの中から, 目的関数を最小または最大にする組合せを見つける問題 例 1: 整数計画問題全般

More information

Microsoft PowerPoint - No7note.ppt

Microsoft PowerPoint - No7note.ppt 仮想記憶 (2) 実際に存在する主記憶 ( 物理メモリ ) の容量に制限されない 仮想的な記憶空間 をユーザに提供する 仮想記憶の基本アイディア 主記憶に入りきらない大きなプログラムでも, ある時点で実行されているのはプログラムの一部のみ, 必要となるデータも一時には一部のデータのみ ( 参照の局所性 ) プログラム全体はディスク装置に入れておき, 実行時に必要な部分を主記憶にもってくればよい 主記憶容量

More information

Functional Programming

Functional Programming PROGRAMMING IN HASKELL プログラミング Haskell Chapter 7 - Higher-Order Functions 高階関数 愛知県立大学情報科学部計算機言語論 ( 山本晋一郎 大久保弘崇 2013 年 ) 講義資料オリジナルは http://www.cs.nott.ac.uk/~gmh/book.html を参照のこと 0 Introduction カリー化により

More information

Microsoft PowerPoint - enshu4.ppt [äº™æ‘łã…¢ã…¼ã…›]

Microsoft PowerPoint - enshu4.ppt [äº™æ‘łã…¢ã…¼ã…›] 4. リスト, シンボル, 文字列 説明資料 本日の内容 1. リストとは 2. Scheme プログラムでのリストの記法 list 句 3. リストに関する演算子 first, rest, empty?, length, list-ref, append 4. 数字, シンボル, 文字列を含むリスト 1. Scheme でのシンボルの記法 2. Scheme での文字列の記法 リストとは 15 8

More information

定義 より, クロス集計表 C ij から, 類似係数 s ij と関連係数 t ij が得られる. 定義 t ij = s ij = a + d [0,1] a + d (a + c) + (c + d) [0,1] ただし, a = c = d = 0 のときは, t ij = 1 とする. 3

定義 より, クロス集計表 C ij から, 類似係数 s ij と関連係数 t ij が得られる. 定義 t ij = s ij = a + d [0,1] a + d (a + c) + (c + d) [0,1] ただし, a = c = d = 0 のときは, t ij = 1 とする. 3 ファジイ理論を利用した高等学校数学教育の教材構造分析 Structure Aalysis of Istructio Items i High School Mathematics Educatio Applyig Fuzzy Theory 松崎佑己 1, 瀧澤武信 Yuki MATSUZAKI 1, Takeobu TAKIZAWA 1 早稲田大学大学院教育学研究科 1 Graduate School

More information

Microsoft PowerPoint - IntroAlgDs-10-4.pptx

Microsoft PowerPoint - IntroAlgDs-10-4.pptx アルゴリズムとデータ構造入門-1 2010年10月12日 1 1-1-8 1 8 Procedures as Black Black- 大学院情報学研究科知能情報学専攻 知能メディア講座 音声メディア分野 1.2.1 1 2 1 Linear Recursion and Iteration 復習 htt://winnie.kuis.kyoto-u.ac.j/~okuno/lecture/10/introalgds/

More information