1 / 12

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

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. 今回の授業で説明 . ソートアルゴリズムの種類. 選択ソート  (selection sort) バブルソート  (bubble sort)

shada
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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

More Related