Top / プログラミングおよび実習II / 20061117

[ 高橋のページ ] [ プログラミングおよび実習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
    

おまけ [edit]

以下のデータ(10件)を入力してならべかえさせてみよう

[  1] [  4] [  6] [  8] [ 10] [  5] [  3] [  7] [  2] [  9]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-08-13 (水) 13:45:19 (1770d)