逐次ソート 2011/05/16. ソート(sort) 順序集合の要素a 1 … a n の上下関係を整 える 一般的には、整数の集合 N を考えればよ い ソートの計算量が問題となる どのような入力に対し、どのようなアル ゴリズムが最適か?

Slides:



Advertisements
Similar presentations
コンピュータ概論 B ー ソフトウェアを中心に ー #13 アルゴリズム・計算可能性 京都産業大学 安田豊.
Advertisements

0章 数学基礎.
4.3 マージソート.
データ構造とアルゴリズム 平成20年度 前期 2年生必修  水曜日 3-4時限.
極小集合被覆を列挙する 実用的高速アルゴリズム
離散システム特論 整列(sorting)アルゴリズム 2.
ヒープソートの演習 第13回.
4.ソート 4-1.ソート問題について 4-2.簡単なソートアルゴリズム 4-3.高度なソートアルゴリズム
第12回 ソート(3): シェルソート、クイックソート
アルゴリズムとデータ構造 第8回 ソート(3).
第10回 整列 ~ バブルソート,挿入ソート,選択ソート~
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
第11回 整列 ~ シェルソート,クイックソート ~
第11回 整列 ~ バケットソート,基数ソート,ヒープソート~
ファジィ論理と ファジィ構造モデリング 北海道工業大学 情報デザイン学科 三田村 保.
データ構造と アルゴリズム 理工学部 情報システム工学科 新田直也.
Extremal Combinatorics 14.1 ~ 14.2
アルゴリズムとデータ構造 --- 理論編 --- 山本 真基
第10回 ソート(1):単純なソートアルゴリズム
時空間データからのオブジェクトベース知識発見
情報工学概論 (アルゴリズムとデータ構造)
データ構造と アルゴリズム 第二回 知能情報学部 新田直也.
データ構造とアルゴリズム 分割統治 ~ マージソート~.
データ構造と アルゴリズム 知能情報学部 新田直也.
岩井 儀雄 コンピュータ基礎演習  ー探索、整列ー 岩井 儀雄
Probabilistic Method 6-3,4
離散数学I 第6回 茨城大学工学部 佐々木稔.
アルゴリズム入門.
アルゴリズムとデータ構造 第7回探索のためのデータ構造(1) 2015/11/18 アルゴリズムとデータ構造 2015.
第11回 整列 ~ シェルソート,クイックソート ~
コンパイラ 2011年10月24日
7.時間限定チューリングマシンと   クラスP.
7-3.高度な木 (平衡木) AVL木 平衡2分木。回転操作に基づくバランス回復機構により平衡を保つ。 B木
線形代数学 谷津 哲平 第1章 ベクトル 1.1 ベクトル空間 1.2 ベクトルの一次独立性 1.3 部分ベクトル空間
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
3. 束 五島 正裕.
アルゴリズムとデータ構造1 2006年6月16日
情報工学概論 (アルゴリズムとデータ構造)
ソートアルゴリズムの種類 選択ソート (selection sort) バブルソート (bubble sort)
情報工学概論 (アルゴリズムとデータ構造)
データ構造とアルゴリズム 担当:和田俊和 居室:A603 講義資料等は下記を参照してください.
関係 (relation) 集合Aの要素aとBの要素bとが、ある条件Rを満たすとき「Rの関係にある」といい、aRb と書く。
補遺:質問への解答(1) 順序対と非順序対(1回目の授業)
わんくま同盟茶藝部顧問 Microsoft MVP for VC episthmh
アルゴリズムとデータ構造 第3章 ヒープ 6月10日分
第9回 優先度つき待ち行列,ヒープ,二分探索木
2. 関係 五島 正裕.
2. 関係 五島 正裕.
A Simple Algorithm for Generating Unordered Rooted Trees
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
アルゴリズムとプログラミング (Algorithms and Programming)
復習その1+α JBuilderの使い方を思い出す。 配列とGUI
復習+α JBuilderの使い方を思い出す。 配列とGUI 再帰とマージソート 木と二分木の探索
プログラミング 4 整列アルゴリズム.
2009/10/23 整列アルゴリズム (1) 第4講: 平成21年10月23日 (金) 4限 E252教室 コンピュータアルゴリズム.
情報とコンピュータ 静岡大学工学部 安藤和敏
プログラミング 4 木構造とヒープ.
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
アルゴリズムとデータ構造 第3章 ヒープ 5月31日分
補講:アルゴリズムと漸近的評価.
第9回 優先度つき待ち行列,ヒープ,二分探索木
アルゴリズムとプログラミング (Algorithms and Programming)
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
アルゴリズムとデータ構造 --- 理論編 --- 山本 真基
ソートのプログラムの流れ 配列の中身を小さい順に並び替える a[1],a[2],…a[n]の値を順に出力する
ヒープソート.
参考:大きい要素の処理.
3 分散システムのフォールトトレランス 分散システム Distributed Systems
グラフの列挙 中野 眞一    (群馬大学) 2019/9/14 列挙学校.
プログラミング論 バイナリーサーチ 1.
Presentation transcript:

逐次ソート 2011/05/16

ソート(sort) 順序集合の要素a 1 … a n の上下関係を整 える 一般的には、整数の集合 N を考えればよ い ソートの計算量が問題となる どのような入力に対し、どのようなアル ゴリズムが最適か?

安定なソート・不安定なソート 安定なソート 同じ値の要素が複数あったときにソート後順番が保 たれている 4 5 1 1 5 2 7 1 4 5 1 5 2 7 不安定なソート ソート後の順番が保障されていない 1 4 5 2 5 1 7

計算量(1) オーダー( order) O () ソートアルゴリズムが、データ個数nに 対しどれだけの計算時間を必要とするか の目安 高速なコンピュータでも、アルゴリズム が適切でないと、nが大きくなったとき に破綻する

計算量(2) (例)ある入力nに対し アルゴリズム F 1 の計算時間が F 1 (n)= C 1 n + C 2 アル ゴリズム F 2 の計算時間数が F 2 (n)= D 1 n 2 + D 2 n+ D 3 F 1 (α) < F 2 (α) となるような α が存在する

計算量(3) ステップ数の最大項をとる O(n 2 +n)= O(n 2 ) O(log n +n 2 )=O(l og n) O(n n )>O(n 2 )>O(n log n)>O(log n)>O(n) 最大項の係数は無視してよい O(kn 2 +ln)= O(n 2 )

比較によるアルゴリズム 計算量 O(n 2 ) バブルソート( bubble sort) 挿入ソート (insert sort) 計算量 O(n l o g n ) クイックソート (quick sort) ヒープソート (heap sort) マージソート (marge sort)

比較によらないアルゴリズム 計算量 O(n) ただし制限あり バケットソート( backet sort) 大量のメモリを必要とする 基数ソート (radix sort) バケットソートよりも遅い

アルゴリズムによる計算時間

いろいろな計算量 最速計算量 当然 O(n) 最悪計算量 もっとも悪いパターンのときの計算量 O( n log (n) ) が上界 平均計算量 n!のパターンの平均計算量

決定木(比較木)(1) 計算量の抽象化 決定木(比較木) アルゴリズムの動きを概念化 二分探索木と似ているが、違う概念であることに注 意

決定木(比較木)(2)

決定木(比較木)(3) 決定木の平均深さは log 2 n! 以上 計算量の上界 O( log2 n! ) = O( log n*n) =O (n log n) n校によるトーナメント試合の試合数

決定木(比較木)(4) 二分探索木の平衡木・AVL木につ いての議論は適用できる 平衡木を作ることがそのまま計算量 の上界を求めることになる もっとも深い葉が最悪計算量に相当 する

ベンチマークテスト

参考文献 u.ac.jp/~fuchida/edu/algorithm/sort-algorithm/ u.ac.jp/~fuchida/edu/algorithm/sort-algorithm/ The Art of Computer Programming Vol. Ⅲ D.A.Knuth ASCII 出版 バイブル。大著であるが親切に書かれており初学者 にも意外とわかりやすい 理論面を丁寧に記述している 練習問題が豊富 (だが5分で解ける問題、とかう ざい設定がしてある) 定本 C プログラミングのためのアルゴリズムとデータ 構造 近藤嘉雪 SOFTBANK BOOKS 簡潔で実用的。理論的な面は追及していない

順序集合 集合の要素間に上下関係を与えたもの ある集合 A の任意2つの要素 a 、 b に与えら れた二項関係により、 前順序集合 半順序集合 全順序集合 などが定義される

前順序集合 集合 A のすべての要素 a 、 b に対し二項関 係 (A,≤ ) があって、 反射則 : a ≤ a 推移則 : a ≤ b かつ b ≤ c ならば a ≤ c が成り立つとき、これを半順序集合という

半順序集合 集合 A のすべての要素 a 、 b に対し二項関 係 (A,≤ ) があって、 反射則 : a ≤ a 推移則 : a ≤ b かつ b ≤ c ならば a ≤ c 反対称律 : a ≤ b かつ b ≤ a ならば a = b が成り立つとき、これを半順序集合という

全順序集合 半順序集合 A の2つの要素 a, b に対し、 a ≤ b または b ≤ a のいずれか、あるいは両方 が成り立つとき、 a と b は比較可能 (comparable) であるといいう 順序集合 (A, ≤) の任意の2つの要素 a, b が比較 可能であるとき、順序 ≤ は全順序 (total order) または線型順序 (linear order) であると いい、順序集合 A は全順序集合 (totally ordered set) であるという(完全律 (totalness) )

順序集合の例 整数の部分集合 A ⊆ Z は算術演算に対し順序集 合、かつ全順序集合 (ただし、複素数 C は順序集合ではない) グー、チョキ、パーは感覚的勝敗に対し順序 集合ではない (推移則が成り立たない) 集合 A ⊂ N={ 4,1,4,7,8} は普通の算術演算に対し順序集合 (要素4が2つあるので、前順序集合)