data
merge_sort(列c)
分割とマージの木
ソート完了
現在のマージ
まだ merge(整列済みのa, 整列済みのb) は始まっていません
phase 初期化
列c -
mid -
列a -
列b -
比較回数 0
書き込み回数 0
残りステップ 0
通常
分割中
マージ中
要素1個
マージ完了
マージソートの疑似コード
列c を半分に分割し、整列済みの列a と整列済みの列b を最後に merge します。
- 1関数 merge_sort(列c) {
- 2 if (列c の要素数が 1) {
- 3 return 列c
- 4 列a, 列b = 列c を半分に分割する
- 5 整列済みのa = merge_sort(列a)
- 6 整列済みのb = merge_sort(列b)
- 7 return merge(整列済みのa, 整列済みのb)
- 8}
現在の列c
[55, 13, 3, 45, 74, 87, 46, 30]
現在の配列
[55, 13, 3, 45, 74, 87, 46, 30]