正解は ア
クイックソートの動作を初期配列 [2, 3, 5, 4, 1] でトレースします。【1回目の分割】基準値 = 左端 = 2。2 より小さい値 = [1]、2 以上の値 = [3, 5, 4]。「基準値より小さい値のグループ・基準値・大きい値のグループ」の順に並べると [1, 2, 3, 5, 4] になります。【2回目の分割】今度は大きい値のグループ [3, 5, 4] に対して分割を行います。基準値 = 左端 = 3。3 より小さい値 = なし、3 以上の値 = [5, 4]。グループ内の元の順番を維持すると [3, 5, 4] のまま(3 が確定位置に)。全体では [1, 2, 3, 5, 4] となります。これが選択肢 a です。
クイックソートのトレースは「基準値(pivot)= グループの左端」「元の順番を維持してグループ分け」の 2 点を守ること。1 回目と 2 回目の分割対象グループを明確に区別して順に追う。試験では 2〜3 回分割した状態を問う出題が多い。