テーマ 1. ソーティングプログラム




準備
 ファイル data1.dat, data2.dat, data3.dat, data4.dat, data5.dat, data6.dat, data7.dat にそれぞれ系列の異なる 100,000個の整数データ(範囲 1~50000)が格納されている.今回はこれらのファイルをソートデータの対象とする.
data1~3 はランダムデータ,data4 は昇順データ,data5 は降順データ,data6 はバイトニックデータ,data7 はジグザグデータである.

課題1
 各ファイルに対して,バケットソートを適用してデータをソートさせるプログラム"bucket.c"を実現せよ.
 各ファイルに対して,この処理に要する計算時間を測定し,計算量を考察せよ.

課題2
 各ファイルに対して,挿入ソートを適用してデータをソートさせるプログラム"insert.c"を実現せよ.
 同様に処理時間の測定と計算量の考察を行え.

課題3
 各ファイルに対して,バブルソートを適用してデータをソートさせるプログラム"bubble.c"を実現せよ.
 同様に処理時間の測定と計算量の考察を行え.

課題4
 各ファイルに対して,バブルソートの改良型であるシェーカーソートを適用してデータをソートさせるプログラム"shaker.c"を実現せよ.
 同様に処理時間の測定と計算量の考察を行え.

課題5
 各ファイルに対して,クイックソートを適用してデータをソートさせるプログラム"quick.c"を実現せよ.
 同様に処理時間の測定と計算量の考察を行え.
 計算時間が大きくならないように,ピボットの選び方を工夫してみよ.

課題6
 これらの結果から各ソート方法にはどのような特徴がわかるか考察せよ.
 また,上記のソート法の他にどのような方法があるか調べてみよ.
 余力のある学生は上記の各ソートにおいて,降順ソートバージョンも実現せよ.

参考
 自宅のWindowsにCコンパイラを導入するならMingw-w64をお勧めする.
 インストールや使い方は多くのページで紹介されている.




Copyright (C) 2000 J.LEE Co.,LTD All rights reserved.