とある大学のとある学科のある授業(笑)でバブルソートのアルゴリズムを使った課題が出てますが、こんな問題は解けますか。
ここに、日本語で10文字以下の名前をもつ1000人以下の学生がいる。
学生の情報として、名前の他に、10文字以下の読み仮名と、学年、数学の成績(100点満点)、物理の成績(数学同様)、英語の成績(数学同様)がある。
日本語は Unicode で実行することを考え、1文字に付き3バイト確保するものとする。
このとき、
- まずは、名前の順。
- 名前の読み方が同じ人たちは漢字の文字コード順で。
- もし、それも同じひとがいるなら、学年が低い順。
- それも同じなら、数学の成績がよい順
- 以下同じ。
で並び替えるプログラムを作りなさい。
言語は自由。
なお、データは上に掲示した順番に記録してある CSV (カンマ区切り)ファイルから読み込むものとする。
まあ、バブルソートといえば、こういうアルゴリズムだから、変える場所が決まってきて意味がないんだよな。