プログラミング演習1(問3:整列:レポート)
レポート課題:整列アルゴリズムの比較
課題1) バブルソート、選択ソート、挿入ソートのいずれか1つのアルゴリズムのフローチャートを示し、説明せよ。
課題2) 降順(大から小)に整列するためのクイックソートのソースコード(適切なmain関数とコメントつき)を示せ。
課題3) 上記の4種の整列アルゴリズムを用いて、rand()関数を用いて生成したn個の擬似整数一様乱数(0からRAND_MAX)を整列したときの時間計算量(アルゴリズムの実行にかかった時間)を測定し下記の表を完成し、考察せよ。
整列アルゴリズムの時間計算量比較(単位:秒)
整列対象数(n) | バブルソート | 選択ソート | 挿入ソート | クイックソート |
200 |
|
|
|
|
2,000 |
|
|
|
|
20,000 |
|
|
|
|
200,000 |
|
|
|
|
オプション課題
オプション課題4) バブルソート、選択ソート、挿入ソートの要素の比較と交換の回数を測定し、下記の表を完成し、考察せよ。
整列アルゴリズムの時間計算量比較(比較回数/交換回数)
整列対象数(n) | バブルソート | 選択ソート | 挿入ソート |
200 | 19,900/ | / | / |
2,000 | / | / | / |
20,000 | 199,990,000/ | / | / |
200,000 | / | / | / |
オプション課題5) 上記の4種以外の整列アルゴリズムを調べて説明せよ(フローチャート、ソースコードも付加すると良い)。
レポートの書き方、提出
- レポートのテンプレートをダウンロードして書き始めること
- レポートの書き方はここに従う
- 参考文献には,プログラムやレポートの作成時に参照した授業の資料以外の 本やURLを書くこと
- レポート提出はここに従う
- レポート提出期限:2013年7月2日(火)8:40
- 書式不備通知:2013年7月8日(月)
- 書式修正版提出期限:2013年7月12日(金)17:00