[ [[高橋のページ:http://tortoise1.math.ryukoku.ac.jp/~takataka/index-j.html]] ]
[ [[プログラミングおよび実習II2006]] ]

*プログラミングおよび実習II 2006年11月10日 [#waf7da04]

#contents

//&color(#ff0000){工事中};

**今日の課題: クイックソート [#zab82dd7]


***課題1117-A(締切: 今日の実習開始後すぐ,締切後チェック対象外) [#m68c8815]

11月16日の演習問題のプリントを提出し,チェックを受けてください.

***課題1117-B(締切: 今日の実習終了時) [#g750286a]

クイックソートのプログラムを完成させ,動作確認ができたらチェックをうけてください.
ただし,ソースは,課題1110-Bや課題1020-Aを参考にして,以下の仕様にしたがって作成して下さい.
-関数QuickSort()とqs()を定義した(main()は含まない)ソースファイル qsort.c を作成する.ただし,QuickSort()は次のような仕様とします.
--仮引数は,1次元配列(の先頭へのポインタ)data,データ件数nの二つ
--戻り値なし
-main()からはQuickSort()を呼び,QuickSort()がqs()を呼ぶようにする
-グローバル変数nswapを用いて,交換回数をカウントする
-qsort.cと,以前作成した printdata.c, sortmain.c を分割コンパイル/リンクして,実行形式をつくる
-こんな感じの出力になるようにするとよいかも
#pre{{
得点は何件ありますか? : 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
}}

***おまけ [#u091a316]

以下のデータ(10件)を入力してならべかえさせてみよう
#pre{{
[  1] [  4] [  6] [  8] [ 10] [  5] [  3] [  7] [  2] [  9]
}}

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS