アルゴリズムとデータ構造 補足資料7-3 「単純選択ソートselsort.c」

Slides:



Advertisements
Similar presentations
SQL による数独の解法 青山学院大学理工学部 矢吹太朗・佐久田博司. 数独とは何か ナンプレとも呼ばれ る制約充足問題 各行・列・ブロック に 1 から 9 の数字を一 つずつ当てはめる 新聞等に載っている ものはとても簡単 人間には難しいもの → もある.
Advertisements

プログラムのパタン演習 解説.
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
アルゴリズムイントロダクション第2章 主にソートに関して
アルゴリズムとデータ構造 2012年6月27日
第12回 ソート(3): シェルソート、クイックソート
アルゴリズムとデータ構造 第8回 ソート(3).
第10回 整列 ~ バブルソート,挿入ソート,選択ソート~
第11回 整列 ~ シェルソート,クイックソート ~
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
プロセッシング入門3 初歩のプログラミング.
第9回 並び替えアルゴリズム ~さまざまなアルゴリズムを比較しよう~.
アルゴリズムとデータ構造 補足資料13-4 「2分探索木の追加・削除(ダイジェスト)」
第10回 ソート(1):単純なソートアルゴリズム
データ構造とアルゴリズム 分割統治 ~ マージソート~.
アルゴリズムとデータ構造 補足資料4-2 「線形探索」
岩井 儀雄 コンピュータ基礎演習  ー探索、整列ー 岩井 儀雄
アルゴリズムとデータ構造 補足資料6-3 「サンプルプログラムcat3.c」
エージェントを管理するボスの苦悩 問題 n人のエージェントを部下に持つボスがいる. エージェントは出張・帰還を頻繁に繰り返す.
データ構造と アルゴリズム 第八回 知能情報学部 新田直也.
データ構造とアルゴリズム論 第2章 配列(構造)を使った処理
アルゴリズムとデータ構造 補足資料10-2 「nクイーン」
データ構造と アルゴリズム 第十一回 理工学部 情報システム工学科 新田直也.
第11回 整列 ~ シェルソート,クイックソート ~
混合ガウスモデルによる回帰分析および 逆解析 Gaussian Mixture Regression GMR
アルゴリズムとデータ構造1 2005年7月15日
モデルの逆解析 明治大学 理工学部 応用化学科 データ化学工学研究室 金子 弘昌.
アルゴリズムとデータ構造 補足資料11-1 「mallocとfree」
アルゴリズムとデータ構造 補足資料5-2 「サンプルプログラムsetop.c」
アルゴリズムとデータ構造 補足資料10-1 「騎士巡回」
アルゴリズムとデータ構造 補足資料14-2 「ダイレクトチェイニング法」
アルゴリズムとデータ構造 補足資料4-1 「メモリと配列」
アルゴリズムとデータ構造 補足資料5-1 「メモリとポインタ」
アルゴリズムとデータ構造 補足資料6-2 「サンプルプログラムcat2.c」
わんくま同盟茶藝部顧問 Microsoft MVP for VC episthmh
データ構造とアルゴリズム論 第6章 整列(ソート)のアルゴリズム
大岩 元 慶応大学環境情報学部 再帰 データ構造とプログラミング(8) 大岩 元 慶応大学環境情報学部
25. Randomized Algorithms
アルゴリズムとプログラミング (Algorithms and Programming)
写真の挿入 2.SNSアイコン 3.テキストの入れ替え
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
プログラミング 4 整列アルゴリズム.
2009/10/23 整列アルゴリズム (1) 第4講: 平成21年10月23日 (金) 4限 E252教室 コンピュータアルゴリズム.
プログラミング 4 探索と計算量.
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
アルゴリズムとデータ構造1 2006年7月11日
アルゴリズムとデータ構造 2011年6月23日
アルゴリズムとデータ構造 2012年7月2日
アルゴリズムとプログラミング (Algorithms and Programming)
アルゴリズムとデータ構造 2011年6月28日
Advanced Data Structure 第3回
アルゴリズムとデータ構造 2013年7月2日
アルゴリズムとデータ構造 補足資料11-3 「線形リストのオペレータ」
ソートのプログラムの流れ 配列の中身を小さい順に並び替える a[1],a[2],…a[n]の値を順に出力する
アルゴリズムとデータ構造 補足資料9-1 「ハノイの塔」
平面走査法を使った 一般線分の 交点列挙アルゴリズム
確率論・数値解析及び演習 (第7章) 補足資料
アルゴリズムとデータ構造 2012年6月25日
ヒープソート.
実験計画法 Design of Experiments (DoE)
Locally-Weighted Partial Least Squares LWPLS 局所PLS
「データ学習アルゴリズム」 第3章 複雑な学習モデル 報告者 佐々木 稔 2003年8月1日 3.2 競合学習
原口和也 高橋隆一 丸岡章 石巻専修大学 理工学部 情報電子工学科
アルゴリズムとデータ構造 補足資料7-1 「メモリでの『構造体の配列』」
アルゴリズムとデータ構造 補足資料6-1 「サンプルプログラムcat1.c」
アルゴリズムとデータ構造 補足資料5-3 「サンプルプログラムstrcat.c」
混合ガウスモデル Gaussian Mixture Model GMM
プログラミング論 バイナリーサーチ 1.
Presentation transcript:

アルゴリズムとデータ構造 補足資料7-3 「単純選択ソートselsort.c」 横浜国立大学 理工学部 数物・電子情報系学科 富井尚志

65 90 85 70 86 92 63 85 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 65 90 85 70 86 92 63 85 未整列

65 90 85 70 86 92 63 85 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 65 90 85 70 86 92 63 85 未整列 未整列エリアの最小

90 85 70 86 92 85 65 63 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 90 85 70 86 92 85 65 63 未整列 入れ替え 未整列エリアの最小

63 90 85 70 86 92 65 85 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 63 90 85 70 86 92 65 85 整列済み 未整列 入れ替え

63 90 85 70 86 92 65 85 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 63 90 85 70 86 92 65 85 整列済み 未整列

63 90 85 70 86 92 65 85 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 63 90 85 70 86 92 65 85 整列済み 未整列 未整列エリアの最小

63 90 85 70 86 92 65 85 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 63 90 85 70 86 92 65 85 整列済み 未整列 未整列エリアの最小 入れ替え

63 65 85 70 86 92 90 85 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 63 65 85 70 86 92 90 85 整列済み 未整列 未整列エリアの最小 入れ替え

63 65 85 70 86 92 90 85 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 63 65 85 70 86 92 90 85 整列済み 未整列 未整列エリアの最小

63 65 85 70 86 92 90 85 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 63 65 85 70 86 92 90 85 整列済み 未整列 未整列エリアの最小 入れ替え

63 65 70 85 86 92 90 85 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 63 65 70 85 86 92 90 85 整列済み 未整列 未整列エリアの最小 入れ替え

63 65 70 85 86 92 90 85 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 63 65 70 85 86 92 90 85 整列済み 未整列 未整列エリアの最小

63 65 70 85 86 92 90 85 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 63 65 70 85 86 92 90 85 整列済み 未整列 未整列エリアの最小

63 65 70 85 86 92 90 85 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 63 65 70 85 86 92 90 85 整列済み 未整列 未整列エリアの最小 入れ替え

63 65 70 85 85 92 90 86 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 63 65 70 85 85 92 90 86 整列済み 未整列 未整列エリアの最小 入れ替え

63 65 70 85 85 92 90 86 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 63 65 70 85 85 92 90 86 整列済み 未整列 未整列エリアの最小

63 65 70 85 85 92 90 86 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 63 65 70 85 85 92 90 86 整列済み 未整列 未整列エリアの最小 入れ替え

63 65 70 85 85 86 90 92 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 63 65 70 85 85 86 90 92 整列済み 未整列 未整列エリアの最小 入れ替え

63 65 70 85 85 86 90 92 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 63 65 70 85 85 86 90 92 整列済み 未整列 未整列エリアの最小

63 65 70 85 85 86 90 92 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す 8件のデータ 63 65 70 85 85 86 90 92 整列済み

整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの最小(最大)要素1個を探す        → あったら、候補と入れ替える n件のデータ 整列済 未整列 整列済 未整列

整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す n件のデータ 整列済 未整列 整列済 未整列 i番目の要素 i番目の要素を整列済みにするためのコスト 入れ替え対象の場所を決めるのに:1~n-i回の比較 入れ替え対象の値を保持するのに:1~1+1/2+1/3+…+1/n回のデータ移動 繰り返し回数: n-1回

O(n2)の比較 整列済みのエリアと未整列のエリアに分けて考える。 解の方針:未整列のエリアの要素1個を、整列済みのエリアのどこに「挿入」すればよいか探す O(n2)の比較 データ移動回数については、参考書(N.ヴィルト著「アルゴリズムとデータ構造」)参照 n件のデータ 整列済 未整列 整列済 未整列 … n-1回の繰返し 整列済 未整列 それぞれ、およそ(n-i)/2回程度の比較 … 整列済 未整列 … 整列済 未整列 … 整列済 未整列 整列済 未整列