Download
slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
ソートのプログラムの流れ PowerPoint Presentation
Download Presentation
ソートのプログラムの流れ

ソートのプログラムの流れ

141 Views Download Presentation
Download Presentation

ソートのプログラムの流れ

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

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

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

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

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

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

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

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

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

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

  10. 挿入ソート(insertion sort)― その1 a[1], a[2]をソート a[1],…, a[3]をソート a[1], …, a[4]をソート a[1], …, a[5]をソート a[1], …, a[6]をソート ソート終了!

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

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