したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

■■■20レス以内で済むF-BASICの質問はこちらへ■■■

177ラオウ:2005/02/13(日) 06:26:11
>>175
すみません。
この表現(var shared HAIRETU(A,B,C,D,E,F) AS LONG)は間違っています。

実際はvar shared SORTWORK1(J&, ITI)で、SORTWORK1の中のITIは6個(1:氏
名、2:年齢、3:住所、4:電話、5:性別、6:金額)があり、年齢を昇順、金額を
降順に並べ替えたいとき

SORT 50000,2,"U" '年齢を昇順
SORT 50000,6,"D" '金額を降順

SUB SORT(TOTALCNT1&,ITI,ZYUN$)
SELECT CASE ZYUN$
CASE IS = "U"
for L& = TOTALCNT1& to 1 step -1
for J& = 1 to L& - 1
if SORTWORK1(J&, ITI) > SORTWORK1(J& + 1, ITI) then
for M = 1 to 6
swap SORTWORK1(J&, M), SORTWORK1(J& + 1, M)
next
endif
next
next
CASE IS = "D"
For L& = TOTALCNT1& to 1 step -1
for J& = 1 to L& - 1
if SORTWORK1(J&, ITI) < SORTWORK1(J& + 1, ITI) then
for M = 1 to SORTKOUMOKU
swap SORTWORK1(J&, M), SORTWORK1(J& + 1, M)
next
endif
next
next
END SELECT
ENDSUB

というふうに、ITIで並べたい項目を指定し、ZYUN$で昇順か降順を指定します。
なお、このサブプロを実行すると2時間以上かかります。

171さんの例を元に、クイックソートで作ってみたのですが、年齢を昇順、金額
を降順に並べ替えたいとき、1回目の年齢を昇順にはきれいにソートできるので
すが、2回目の金額のソートをすると、金額は降順になるのですが、年齢がばら
ばらになってしまいます。
クイックソートでは、もともと無理があるのでしょうか。

長文になりましたが、お知恵をお貸しください。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板