質問<2627>2005/10/14
すみません。最後でつまづいているので、アドバイスください。 (問い)n個の値a[0],a[1].....a[n-1]が与えられているとき、 a[ ]を大きい順(a[0]が最大になるように)に並び替えるプログラムをかけ。 という問題で、 100 dim a(10), rnk(10) 110 for i=0 to 9 120 a(i) = (i-3)*(i-5)*(i-7) 140 next i 150 for i=0 to 9 155 rnk(i) = 1 160 for j=0 to 9 170 if a(i) < a(j) then rnk(i) = rnk(i) + 1 180 next j 190 next i 200 for i=0 to 9 210 print "a[";i;"]:rank="rnk(i) 220 next i という問題で、170行目と210行目がうまくできません。 どうやったら問題にそえるか教えてください ★希望★ヒント希望★
お便り2005/10/15
from=wakky
プロミングはあまり得意じゃありませんが a(0)とa(1)~a(n)の大小比較をひとずつやって 添え字を交換(swap)する操作を繰り返せばいいんじゃないでしょうか? それで、a(0)が最小になります。 次にa(1)とa(2)~a(n)を比較して・・・ その繰り返しでできるんじゃないかなぁ? もっと効率のいい、クイックソートという手法もあるようです。