プログラミング演習1(問3:整列:レポート)

レポート課題:整列アルゴリズムの比較

課題1) バブルソート、選択ソート、挿入ソートのいずれか1つのアルゴリズムのフローチャートを示し、説明せよ。
課題2) 降順(大から小)に整列するためのクイックソートのソースコード(適切なmain関数とコメントつき)を示せ。
課題3) 上記の4種の整列アルゴリズムを用いて、rand()関数を用いて生成したn個の擬似整数一様乱数(0からRAND_MAX)を整列したときの時間計算量(アルゴリズムの実行にかかった時間)を測定し下記の表を完成し、考察せよ。
整列アルゴリズムの時間計算量比較(単位:秒)
整列対象数(n)バブルソート選択ソート挿入ソートクイックソート
200



2,000



20,000



200,000



オプション課題

オプション課題4) バブルソート、選択ソート、挿入ソートの要素の比較と交換の回数を測定し、下記の表を完成し、考察せよ。
整列アルゴリズムの時間計算量比較(比較回数/交換回数)
整列対象数(n)バブルソート選択ソート挿入ソート
20019,900///
2,000///
20,000199,990,000///
200,000///
オプション課題5) 上記の4種以外の整列アルゴリズムを調べて説明せよ(フローチャート、ソースコードも付加すると良い)。

レポートの書き方、提出