C/C++の宿題を片付けます 103代目
■ このスレッドは過去ログ倉庫に格納されています
0787デフォルトの名無しさん
2008/01/30(水) 20:37:58[2] 問題文(含コード&リンク):シェルソートは単純挿入法を改良し、ソートの効率を上げたものである。
全ての要素を1度にソートするのではなく、
間隔dをあけて要素を比較して大まかなソートを繰り返したのち、
最後にd = 1でソートを実行する。
データ数をnとしたときの、効率の良い間隔d[i]の計算法として、
Knuthによる次の式が知られている。
t = log2n - 1 (整数に切り捨て)
d[t-1] = 1
d[i-1] = 2d[i] + 1
この式を使って、与えられた要素数nに対し
t、配列dの値を計算する関数を作成しなさい。
n = 100としたときの、tおよびdの要素の値を画面に出力しなさい。
logの計算を行うには、math.hをインクルードする
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:VS2005
[3.3] 言語: C
[4] 期間:2/1まで
[5] その他の制限: なし
お願いします。
■ このスレッドは過去ログ倉庫に格納されています