V.B.に特化した文字列の整列方法と整列方法の自動選択
小さくはない配列の整列で
通常法(本来の名称忘却) http://oshiete1.goo.ne.jp/kotaeru.php3?q=209365内回答 No3
for k=j to i を For k=j+1 to iに変更
クイックソート http://www.ne.jp/asahi/protech/hiroaki/programing/vb.html
シェルソート http://www5d.biglobe.ne.jp/~tomoya03/shtml/algorithm/SSort.htm
ループ変数を倍精度整数型に,配列を文字配列に,変数名を自分の使っている命名法に
再帰参照回数を減らすように,末尾も含めて整列されるように変更
文字列を SortDt$(N&)=Str$(Rnd(1)) で指定し
富士通 FMV Diskpower S3 20 (Win 95+VB6.0(V.S), 購入直後の状態)で実行した結果,
約30秒間(V.B. Timer関数で測定)で,クイックソート,シェルソート,通常法で実行可能回数が
Visual Basic 6.0 SP3 コンパイラ
n&=3 208943, 209490, 248245
n&=10 114149, 138935, 215415
n&=30 47967, 39833, 163284
n&=100 14118, 8353, 83524
n&=300 3913, 2064, 30516
n&=1000 987, 414, 9750
n&=3000 281, 105, 3348
n&=10000 68, 21, 947
となり,大型コンピューター(Fotran)で過去に経験しているクイックソート,シェルソートの利点を得られませんでした。
又,上記表はn&が対数目盛でほぼ等間隔になるように選択しました。n&に対する整列時間の変化が過去に報告されている内容とは異なります。したがって,整列に関する過去の経験は使えません。
大型コンピューターでは,クイックソートよりも早い整列方法が発表される等の研究が進んでいます。
おそらく Visual Basic 6.0 用に特化した整列方法があるかと思いますが,ご存知の方いらっしゃいませんか。
整列方法の自動選択(Win95で表示ルーチンの自動選択をマイクロソフトで行なっていましたから)を考えています。
関係情報をご存知の方いらっしゃいませんか。
お礼
ありがとうございます. 過去の情報を参考にして活かさなければならないと思います また、桁数によって進みを変える表し方も重要なものが得ると思えます