データ列が整列の過程で図のように上から下に推移する整列方法はどれか。ここで、図中のデータ列中の縦の区切り線は、その左右でデータ列が分割されていることを示す。
┌─┬─┬─┬─┬─┬─┬─┬─┐
│6│1│7│3│4│8│2│5│
└─┴─┴─┴─┴─┴─┴─┴─┘
┌───┬───┬───┬───┐
│1 6│3 7│4 8│2 5│
└───┴───┴───┴───┘
┌───────┬───────┐
│1 3 6 7│2 4 5 8│
└───────┴───────┘
┌───────────────┐
│1 2 3 4 5 6 7 8│
└───────────────┘
ア クイックソート
イ シェルソート
ウ ヒープソート
エ マージソート
エ
ア クイックソートは、適当な値 (ピボット) を一つ選び、データの先頭からピボット以上の数値を探し、次にデータの末尾からピボット以下の数値を探し、その位置を交換する。
交換すべき数値がなくなれば、ピボットを境界として2つの領域に分け、ピボットの選択と、値の交換を繰り返すソート方法である。
┌─┬─┬─┬─┬─┬─┬─┬─┐
│6│1│7│3│4│8│2│5│
└─┴─┴─┴─┴─┴─┴─┴─┘
┌─┬─┬─┬─┬─┬─┬─┬─┐
│2│1│7│3│4│8│6│5│
└─┴─┴─┴─┴─┴─┴─┴─┘
┌─┬─┬─┬─┬─┬─┬─┬─┐
│2│1│4│3│7│8│6│5│
└─┴─┴─┴─┴─┴─┴─┴─┘
┌───────┬───────┐
│2 1 4 3│7 8 6 5│
└───────┴───────┘
┌───────┬───────┐
│2 1 3 4│5 8 6 7│
└───────┴───────┘
イ シェルソートは、任意の間隔ごとにソートし、更に間隔を詰めていき、間隔が1になるまで続けるソート方法である。
┌─┬─┬─┬─┬─┬─┬─┬─┐
│6│1│7│3│4│8│2│5│
└─┴─┴─┴─┴─┴─┴─┴─┘
┌─┬─┬─┬─┬─┬─┬─┬─┐
│4│1│7│3│6│8│2│5│
└─┴─┴─┴─┴─┴─┴─┴─┘
┌─┬─┬─┬─┬─┬─┬─┬─┐
│4│1│7│3│6│8│2│5│
└─┴─┴─┴─┴─┴─┴─┴─┘
┌─┬─┬─┬─┬─┬─┬─┬─┐
│2│1│4│3│6│8│7│5│
└─┴─┴─┴─┴─┴─┴─┴─┘
ウ ヒープソートは、2分木を根が最大になるようにソートしていくソート方法である。
配列にして表記すると分かりにくくなる。
エ 正しい。マージソートは、隣り合う配列ごとにソートとマージ (併合) を繰り返すソート方法である。
問5 | 目次 | 問7 |