データ構造とアルゴリズム

配列 5, 3, 8, 1, 4 をバブルソートで昇順に並べる。先頭から隣どうしを比べ、左の方が大きければ交換する操作を末尾まで1回行った(1パス)後の配列はどれか。

  1. A1, 3, 8, 5, 4
  2. B3, 5, 1, 4, 8
  3. C1, 3, 4, 5, 8
答えと解説を見る

正解:B. 3, 5, 1, 4, 8

5と3を交換して 3, 5, 8, 1, 4、5と8はそのまま、8と1を交換して 3, 5, 1, 8, 4、8と4を交換して 3, 5, 1, 4, 8 になります。1パスで最大値の8が末尾まで運ばれて位置が確定し、次のパスでは残りの4つを同じように並べます。1, 3, 8, 5, 4 は最小値を探して先頭と交換する選択ソートの1パス後の配列、1, 3, 4, 5, 8 はすべて並べ終えた結果です。

  • A. 最小値の1を先頭と交換する、選択ソートの1パス後の配列です。
  • B. 正しい。隣どうしの交換で、最大値の8が末尾まで移動します。
  • C. 並べ替えが終わった最終結果で、1パスではここまで進みません。
この分野を解く 分野ページへ

関連する計算ツール

データ構造とアルゴリズムの参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

データ構造とアルゴリズムのほかの問題

  1. 配列 29, 10, 14, 37, 13 を選択ソート(未整列の部分から最小値を探し、未整列の部分の先頭と交換する)で昇順に並べる。この操作を2回行った後の配列はどれか。
  2. 要素数10の配列を挿入ソートで昇順に並べる。2番目以降の要素を順に取り出し、左隣から順に比べて、取り出した値以下の要素が見つかるか先頭に達するまで比べる。最初から昇順に並んでいる場合と、降順に並んでいる場合の比較の回数の組はどれか。
  3. 最悪の場合でも計算量が O(n log n) で、作業用の配列などの追加の記憶領域をほとんど使わずに並べ替えられるソートはどれか。
  4. (名前, 点数) のデータ (A, 80)、(B, 70)、(C, 80)、(D, 70) がこの順に並んでいる。点数の昇順に安定ソートで並べ替えたときの名前の順はどれか。
  5. クイックソートの計算量が O(n²) になる典型的な場合はどれか。