[ 高橋のページ ]
[ プログラミングおよび実習II2006? ]
プログラミングおよび実習II 2006年11月10日 †[edit]
今日の課題: クイックソート †[edit]
課題1117-A(締切: 今日の実習開始後すぐ,締切後チェック対象外) †[edit]
11月16日の演習問題のプリントを提出し,チェックを受けてください.
課題1117-B(締切: 今日の実習終了時) †[edit]
クイックソートのプログラムを完成させ,動作確認ができたらチェックをうけてください.
ただし,ソースは,課題1110-Bや課題1020-Aを参考にして,以下の仕様にしたがって作成して下さい.
- 関数QuickSort()とqs()を定義した(main()は含まない)ソースファイル qsort.c を作成する.ただし,QuickSort()は次のような仕様とします.
- 仮引数は,1次元配列(の先頭へのポインタ)data,データ件数nの二つ
- 戻り値なし
- main()からはQuickSort()を呼び,QuickSort()がqs()を呼ぶようにする
- グローバル変数nswapを用いて,交換回数をカウントする
- qsort.cと,以前作成した printdata.c, sortmain.c を分割コンパイル/リンクして,実行形式をつくる
- こんな感じの出力になるようにするとよいかも
得点は何件ありますか? : 7
0番目の得点を入力してください : 51
1番目の得点を入力してください : 99
2番目の得点を入力してください : 32
3番目の得点を入力してください : 63
4番目の得点を入力してください : 87
5番目の得点を入力してください : 50
6番目の得点を入力してください : 71
##### 元のデータ #####
[ 51] [ 99] [ 32] [ 63] [ 87] [ 50] [ 71]
##### 並べかえ中 #####
first = 0, last = 6, r = 63
first = 0, last = 2, r = 50
first = 4, last = 6, r = 99
first = 4, last = 5, r = 87
##### 並べかえ結果 #####
[ 32] [ 50] [ 51] [ 63] [ 71] [ 87] [ 99]
交換回数 = 4
以下のデータ(10件)を入力してならべかえさせてみよう
[ 1] [ 4] [ 6] [ 8] [ 10] [ 5] [ 3] [ 7] [ 2] [ 9]