カメヲラボ

主にプログラミングとお勉強全般について書いてます

CodeIQ過去問集26:バブルソートの交換回数

本稿はCodeIQで2014年11月3日~12月15日に出題された コード銀行:バブルソートの交換回数 という問題を再編集したものです。 ※出題時と記述が一部異なる場合がありますがご了承ください。

バブルソートの交換回数

【問題】

バブルソートアルゴリズムを用いて整数値のリストを昇順にソートする際、実際に数値の入れ替えを行う回数を高速に計算してください。

たとえば、

[5, 1, 4, 3, 2]

というリストなら、

[1, 5, 4, 3, 2]
[1, 4, 5, 3, 2]
[1, 4, 3, 5, 2]
[1, 4, 3, 2, 5]
[1, 3, 4, 2, 5]
[1, 3, 2, 4, 5]
[1, 2, 3, 4, 5]

のように、計7回数値の入れ替えを行うことになります。

【入力・出力】

整数値のリストが改行区切りで書かれたファイルが与えられます。 ファイルから数値を読み込んで、バブルソート時の『交換回数』を標準出力に出力してください。 上記の例なら、『7』と出力してください。

【解答方法】

count_bubble_sort.zipをダウンロードしてください。 中には以下のファイルが含まれています。

  • sample.in.txt, sample.out.txt

例で示したデータと、その解答です。

  • case01.in.txt, case02.in.txt, case03.in.txt, case04.in.txt, case05.in.txt

これを入力として、正しい実行結果が得られるプログラムを書いてください。

(解答・解説は後日)