Presentation is loading. Please wait.

Presentation is loading. Please wait.

データ構造とアルゴリズム論 第6章 整列(ソート)のアルゴリズム

Similar presentations


Presentation on theme: "データ構造とアルゴリズム論 第6章 整列(ソート)のアルゴリズム"— Presentation transcript:

1 データ構造とアルゴリズム論 第6章 整列(ソート)のアルゴリズム
データ構造とアルゴリズム論 第6章 整列(ソート)のアルゴリズム 平成15年11月18日 森田 彦

2 基礎課題提出状況(11/11) 平均提出数=25.6 (全課題数28) 約7割が25題以上を提出

3 応用課題提出状況(11/11) 平均提出課題数=8.0 13題以上提出は約22%

4 ソートとは? 幾つかのデータを、一定の基準(大きい順、小さい順等)に従って並べ替える操作 アルゴリズムの宝庫 アルゴリズム論学習の山場!
昇順 降順 (小さい順) (大きい順) アルゴリズムの宝庫 アルゴリズム論学習の山場!

5 本章(本日)の学習のねらい 基本的なソートアルゴリズムを学習し、その処理の流れを理解する。 → バブルソート、選択ソート、挿入ソート
基本的なソートアルゴリズムを学習し、その処理の流れを理解する。              → バブルソート、選択ソート、挿入ソート 3つのソートアルゴリズムの効率について考察する。 ソートアルゴリズムを実際のプログラムに応用する。

6 6-1 バブルソート 隣り合う2つのデータを比較し、「並べたい順になっていなければ入れ替える」という操作を繰り返す。  デモプログラム

7 <処理の流れ-4つのデータの昇順の場合> A 10 9 12 2 ソート開始 10 9 12 2 A[1]>A[2]なので交換する。 9
[3] [4] A 10 9 12 2 ソート開始 10 9 12 2 A[1]>A[2]なので交換する。 9 10 12 2 A[2]<A[3]なので交換しない。 9 10 12 2 A[3]>A[4]なので交換する。 9 10 2 12 A[4]の値確定。 9 10 2 12 A[1]<A[2]なので交換しない。 9 10 2 12 A[2]<A[3]なので交換する。 9 2 10 12 A[3]の値確定。 9 2 10 12 A[1]>A[2]なので交換する 2 9 10 12 A[1],A[2]の値確定。→完了!

8 アルゴリズムの特徴 A[1]~A[n]のデータをソートする場合。
データの末尾から順番に値が確定して行く。A[n]→A[n-1],・・・,A[i],・・・,A[2] A[i]の値を確定するためには、A[1]~A[i]までの比較が必要。→(i-1)回の比較 A[i] {i=n,n-1,・・・,2}を確定するために  A[j]>A[j+1]の判定を{j=1~i-1}について行う。  2重のループが必要 → プリント p.89参照。 ※ A[0]~A[n-1]としている。

9 6-2 選択ソート <考え方-昇順の場合> 10 9 6 2 ソート開始時 10 9 6 2 最小値(の位置)を見つける 10 9 6 2
6-2 選択ソート <考え方-昇順の場合> 10 9 6 2 ソート開始時 10 9 6 2 最小値(の位置)を見つける 10 9 6 2 1番目のデータと交換する 2 9 6 10 1番目データの値確定 2 9 6 10 最小値(の位置)を見つける 2 9 6 10 2番目のデータと交換する 2 6 9 10 2番目データの値確定 という操作を繰り返す。 流れ図→p.97参照

10 6-3 挿入ソート 部分的に整列されている場合に効果的 余分な比較をしなくて良い。 例:A[1]~A[3]が整列済み(昇順) A[4]を挿入
6-3 挿入ソート 部分的に整列されている場合に効果的 余分な比較をしなくて良い。 例:A[1]~A[3]が整列済み(昇順) [1] [2] [3] [4] [5] A[4]を挿入 A 1 2 3 9 5 p.101の流れ図参照 1 2 3 9 5 A(3)<A(4)なので交換しない 1 2 3 9 5 A(1)~A(4)まで整列済み 1 2 3 9 5 A(5)を挿入 1 2 3 9 5 A(4)>A(5)なので交換する 1 2 3 5 9 A(3)<A(4)なので交換しない 1 2 3 5 9 ソート完了!

11 6-4 アルゴリズムの効率 比較回数と交換回数が少ないほど、効率は良い。 一般に・・・ 比較回数N: Nバブル=N選択≧N挿入
全てのペアについて比較 選択ソート (=n-1) 整列済みデータの場合は、逆転する場合あり バブルソートが最も効率が悪い。 挿入ソートが効率が良い場合が多い。

12 Windows updateについて 2003年11月12日(日本時間)、マイクロソフト社より深刻度が緊急とされるセキュリティ上の修正プログラムが公開。 修正プログラム が適用されていないシステムは、侵入やワームによる感染などの被害を受ける可能性があります。 各自速やかに、Windows updateを実行して下さい。


Download ppt "データ構造とアルゴリズム論 第6章 整列(ソート)のアルゴリズム"

Similar presentations


Ads by Google