1 / 11

ソートアルゴリズムの種類

ソートアルゴリズムの種類. 選択ソート  (selection sort) バブルソート  (bubble sort) 挿入ソート  (insertion sort) クイックソート  (quick sort) マージソート  (merge sort). 前回の授業で説明. 今回の授業で説明 . 小さい数のグループ. 大きい数のグループ. 31. 39. 28. 11. 45. 73. 63. 94. 各々を再帰的にソート. 11. 28. 31. 39. 45. 63. 73. 94. クイックソート  ―  基本的なアイディア.

tyrell
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. ソートアルゴリズムの種類 • 選択ソート (selection sort) • バブルソート (bubble sort) • 挿入ソート (insertion sort) • クイックソート (quick sort) • マージソート (merge sort) 前回の授業で説明 今回の授業で説明 

  2. 小さい数のグループ 大きい数のグループ 31 39 28 11 45 73 63 94 各々を再帰的にソート 11 28 31 39 45 63 73 94 クイックソート ― 基本的なアイディア 数字 を大きい数と 小さい数の      2グループに分割 左のグループの要素≦右のグループの要素

  3. 8つの数字の中からひとつ選ぶ                     (ピボット)8つの数字の中からひとつ選ぶ                     (ピボット) 左のグループの要素≦ピボット≦右のグループの要素 となるように分割 11 28 31 39 45 63 73 94 クイックソート ― 分割方法(その1) 一番左の値をピボットとする

  4. 31 39 28 73 45 11 63 94 クイックソート ― 分割方法(その2) 左のグループの要素≦ピボット≦右のグループの要素 と分割したい 63 (1)左側からピボット以上の値を探す (2)右側からピボット以下の値を探す (3)2つの数字を交換

  5. 31 39 28 11 45 73 63 94 (4)●が●の左にきたら終了。 分割。 31 39 28 11 45 73 63 94 (1)左側からピボット以上の値を探す クイックソート ― 分割方法(その3) (2)右側からピボット以下の            値を探す  (3)数字を交換 (1)ピボット以上の値を探す (2)ピボット以下の値を探す

  6. 31 39 28 11 45 73 63 94 11 28 39 31 45 63 73 94 11 28 31 39 45 73 94 39 45 39 45 11 28 31 39 45 73 94 11 28 31 39 45 63 73 94 クイックソート ― 全体の流れ

  7. 63 39 28 73 45 11 31 94 28 39 63 73 11 31 45 94 11 28 31 39 45 63 73 94 マージソート ― 基本的なアイディア 配列を2分割 各々を再帰的にソート 2つの配列をマージ ソート完了

  8. 各配列の先頭の数字を比較=>小さいほうが最小値   =>作業用の配列の先頭へ各配列の先頭の数字を比較=>小さいほうが最小値   =>作業用の配列の先頭へ 28 39 63 73 11 31 45 94 作業用の配列Bを用意 11 マージソート ― マージのやり方(その1) • ソートされている2つの配列をマージ

  9. 28 28 39 39 63 63 73 73 31 31 45 45 94 94 11 28 31 11 マージソート ― マージのやり方(その2) 各配列の先頭の数字を比較    =>小さい方を作業用の配列へ

  10. 39 45 63 73 94 39 63 73 45 94 11 28 31 マージソート ― マージのやり方(その3) 次々に作業用の配列に挿入 マージ完了!

  11. 分割 63 39 28 73 45 11 31 94 分割 分割 63 39 28 73 45 11 31 94 63 39 28 73 45 11 31 94 マージ マージ 39 63 28 73 11 45 31 94 マージ 28 39 63 73 11 31 45 94 11 28 31 39 45 63 73 94 マージソート ― 全体の流れ

More Related