ソートのプログラムの流れ 配列の中身を小さい順に並び替える a[1],a[2],…a[n]の値を順に出力する

Slides:



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

4.ソート問題とアルゴリズム 4-1.ソート問題について 4-2.簡単なソートアルゴリズム 4-3.高度なソートアルゴリズム
7/10 if 文課題 力作が多くて感心! 演習1:キーボードから2つの整数を入力し、小さい方の数字を 表示せよ。
キャッシュ付PRAM上の 並列クィックソートと 並列マージソート
離散システム特論 整列(sorting)アルゴリズム 2.
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
ヒープソートの演習 第13回.
アルゴリズムイントロダクション第2章 主にソートに関して
4.ソート 4-1.ソート問題について 4-2.簡単なソートアルゴリズム 4-3.高度なソートアルゴリズム
アルゴリズムとデータ構造 2012年6月27日
第12回 ソート(3): シェルソート、クイックソート
アルゴリズムとデータ構造1 2008年7月22日
アルゴリズムとデータ構造 第8回 ソート(3).
第10回 整列 ~ バブルソート,挿入ソート,選択ソート~
第11回 整列 ~ シェルソート,クイックソート ~
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
第11回 整列 ~ バケットソート,基数ソート,ヒープソート~
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
算法数理工学 第1回 定兼 邦彦.
プロセッシング入門3 初歩のプログラミング.
アルゴリズムとデータ構造 第6回演習解答 2015/11/18実施 アルゴリズムとデータ構造 2015.
プログラミング演習(2組) 第12回
4.整列のアルゴリズム.
アルゴリズムとデータ構造 --- 理論編 --- 山本 真基
第10回 ソート(1):単純なソートアルゴリズム
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング システムプログラミング プロセス間通信(パイプ) 担当:青木義満
データ構造とアルゴリズム 分割統治 ~ マージソート~.
情報理論2 第6回 小林 学 湘南工科大学 2011年11月15日 〒 神奈川県藤沢市辻堂西海岸1-1-25
データ構造とアルゴリズム論 第2章 配列(構造)を使った処理
第11回 整列 ~ シェルソート,クイックソート ~
算法数理工学 第1回 定兼 邦彦.
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
情報工学概論 (アルゴリズムとデータ構造)
アルゴリズムとデータ構造1 2005年7月15日
ソートアルゴリズムの種類 選択ソート (selection sort) バブルソート (bubble sort)
2011/06/21-24 情報知能学科「アルゴリズムとデータ構造」 担当:白井英俊
情報工学概論 (アルゴリズムとデータ構造)
講義では、Cプログラミングの基本を学び 演習では、やや実践的なプログラミングを通して学ぶ
わんくま同盟茶藝部顧問 Microsoft MVP for VC episthmh
データ構造とアルゴリズム論 第6章 整列(ソート)のアルゴリズム
アルゴリズムとデータ構造 第3章 ヒープ 6月10日分
アルゴリズムとデータ構造1 2005年7月1日
アルゴリズムとプログラミング (Algorithms and Programming)
先進的計算基盤システムシンポジウム SACSIS2007併設企画 マルチコアプログラミングコンテスト 「Cellスピードチャレンジ2007」
復習その1+α JBuilderの使い方を思い出す。 配列とGUI
復習+α JBuilderの使い方を思い出す。 配列とGUI 再帰とマージソート 木と二分木の探索
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
プログラミング 4 整列アルゴリズム.
2009/10/23 整列アルゴリズム (1) 第4講: 平成21年10月23日 (金) 4限 E252教室 コンピュータアルゴリズム.
情報とコンピュータ 静岡大学工学部 安藤和敏
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
アルゴリズムとデータ構造1 2006年7月11日
アルゴリズムとデータ構造 2011年6月23日
プログラミング演習Ⅲ- Sorting Quick Sort and Merge Sort
アルゴリズムとデータ構造 --- 理論編 --- 山本 真基
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
アルゴリズムとプログラミング (Algorithms and Programming)
バブルソート,バケツソート,クイックソート
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
アルゴリズムとデータ構造 --- 理論編 --- 山本 真基
平面走査法を使った 一般線分の 交点列挙アルゴリズム
精密工学科プログラミング基礎 第7回資料 (11/27実施)
アルゴリズムとデータ構造 2012年6月25日
ヒープソート.
参考:大きい要素の処理.
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
プログラミング論 バイナリーサーチ 1.
ファーストイヤー・セミナーⅡ 第10回 if文による選択処理(2).
Presentation transcript:

ソートのプログラムの流れ 配列の中身を小さい順に並び替える a[1],a[2],…a[n]の値を順に出力する n個の整数を入力、配列 a[1],a[2],…a[n]に入れる 91 28 36 77 51 11 最も手間のかかる部分 配列の中身を小さい順に並び替える 11 28 36 51 77 91 よいアルゴリズムの必要性 a[1],a[2],…a[n]の値を順に出力する 11 28 36 51 77 91

ソートアルゴリズムの種類 選択ソート (selection sort) バブルソート (bubble sort) 今回の授業で説明  選択ソート (selection sort) バブルソート (bubble sort) 挿入ソート (insertion sort) クイックソート (quick sort) マージソート (merge sort) などなど

選択ソート(selection sort) ― その1 a[1], …,a[6] の 中から最小値 a[min]を見つける 37 61 29 12 95 55 min = a[min] = 1 37 1 37 3 29 4 12 4 12 4 12 a[1] とa[min]を交換 55 95 37 73 61 12

選択ソート ― その2 a[2], …,a[6] の 中から最小値 a[min]を見つける 12 61 29 37 95 55 29 a[2] とa[min]を交換 55 95 37 61 29 12

選択ソート ― その3 12 29 61 37 95 55 a[3],…,a[6]の中での最小値を見つけa[3]と交換 55 95 61 37 29 12 a[4],…,a[6]の中での最小値を見つけa[4]と交換 61 95 55 37 29 12 a[5],a[6]の中での最小値を見つけa[5]と交換 95 61 55 37 29 12 ソート完了

バブルソート(bubble sort) ― その1 ソートの目的:a[1]≦a[2]≦・ ・ ・ ≦a[n-1]≦a[n] 基本操作: a[i] > a[i+1] ⇒ 中身を交換 37 61 29 12 95 55 a[5] > [6] 55 95 a[5] とa[6]を交換 12 29 61 37

バブルソート ― その2 37 61 29 12 55 95 a[4] ≦ [5] なのでそのまま 95 55 12 29 61 37 a[3] > [4] なので交換 95 55 29 12 61 37 a[2] > [3] なので交換 95 55 29 61 12 37 a[1] > [2] なので交換 95 55 29 61 37 12 a[1] =12は最小値!

バブルソート ― その3 12 37 61 29 55 95 12 29 37 61 55 95 12 37 61 29 55 95 12 29 37 61 55 95 交換 12 37 61 29 55 95 12 29 37 55 61 95 交換 12 37 29 61 55 95 12 29 37 55 61 95 交換 a[3]=37は3番目に小さい値 12 29 37 61 55 95 a[2]=29は2番目に小さい値

バブルソート ― その4 12 29 37 55 61 95 12 29 37 55 61 95 12 29 37 55 61 95 12 29 37 55 61 95 a[5]=61は5番目に小さい値a[6]=95は6番目に小さい値 12 29 37 55 61 95 a[4]=55は4番目に小さい値

挿入ソート(insertion sort) ― その1 37 91 15 24 86 55 a[1], a[2]をソート 37 91 15 24 86 55 a[1],…, a[3]をソート 15 37 91 24 86 55 a[1], …, a[4]をソート 15 24 37 91 86 55 a[1], …, a[5]をソート 15 24 37 86 91 55 a[1], …, a[6]をソート 15 24 37 55 86 91 ソート終了!

挿入ソート ― その2 各反復の実行方法 ここに挿入 a[5]までソートされていると仮定 a[6]までソート 15 24 37 86 91 55 a[1], …, a[5]の間に a[6]を挿入すればよい 挿入のやり方 91 86 37 24 15 tmp=55 15 24 37 86 91 91 > 55 37≦55 15 24 37 86 91 15 24 37 55 86 91 86 > 55

挿入ソート ― その3 a[1], a[2]をソート 55 86 24 15 91 37 a[1], a[2]に a[3]を挿入 55 86 24 15 91 37 55 86 24 91 37 15 a[1], …, a[3]に a[4]を挿入 55 86 91 37 24 15 a[1], …, a[4]に a[5]を挿入 55 91 86 37 24 15 a[1], …, a[5]に a[6]を挿入 91 86 55 37 24 15 ソート終了!