並べ替え 大久保 2004/09/23 20:38:00 └こんな感じでしょうか? 山中和義 2004/09/24 15:25:07
並べ替え 大久保 2004/09/23 20:38:00 ツリーへ
並べ替え |
返事を書く |
大久保 2004/09/23 20:38:00 | |
数字の並び替えができなくて困っています。 dim a(10) for i=1 to 10 let a(i)=rnd next i で、a(n) (nは自然数)を小さい順に並べるとき、 a(n)の値を小さい順に表示させることはできるのですが、 nを小さい順に表示させることができません。 どなたかその表示のさせ方と、 k番目に小さいnを b(k)に代入する方法を教えてください。 |
└こんな感じでしょうか? 山中和義 2004/09/24 15:25:07 ツリーへ
Re: 並べ替え |
返事を書く |
山中和義 2004/09/24 15:25:07 | |
こんな感じでしょうか? ポインタのみを移動させれば良いかと思います。 値は整数化してます。 DIM a(10),b(10) FOR i=1 TO 10 LET a(i) = INT(RND*100) LET b(i) = i PRINT i;"番目は値は";a(i);"です。" NEXT i FOR i=1 TO 9 !i番目を基準にして LET m = i LET aa = a(b(i)) FOR j=i+1 TO 10 !i+1番目以降で確認する IF a(b(j))<aa THEN !小さければ LET aa = a(b(j)) LET m = j END IF NEXT j LET bb = b(i) !入れ替える LET b(i) = b(m) LET b(m) = bb NEXT i FOR i=1 TO 10 !確認する PRINT i;"番目に小さいのは、添え字";b(i);"番目で、値は";a(b(i));"です。" NEXT i END |