配列の先頭の要素を常にピボットとするクイックソートで、時間計算量が最悪の になるのは、どのような入力のときか。
選択肢をタップすると、その場で答え合わせできます
正解と解説を見る
正解 Dすでに昇順に整列されている
解説
正解は「すでに昇順に整列されている」です。クイックソートは、ピボットより小さい要素と大きい要素に分割して再帰的に整列します。整列済みの配列で先頭をピボットにすると、ピボットが常に最小値となり、分割の一方が空、もう一方が残り全部になります。分割が n 段近く続き、各段で残りの要素と比較するので、比較回数は約 となり です。「要素がランダムに並んでいる」場合は分割がほぼ均等になりやすく、平均 です。「全要素の中央値が先頭にある」と、最初の分割がほぼ半分ずつになり、むしろ理想的です。「要素の個数が2のべき乗である」ことは計算量に影響しません。
- #クイックソート
- #計算量
この調子でデータ構造とアルゴリズムを続けて解く
▶ この科目の連続演習へ進む(10問)