質問<2627>2005/10/14
from=ゆう
「プログラム」


すみません。最後でつまづいているので、アドバイスください。 

(問い)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)を比較して・・・
その繰り返しでできるんじゃないかなぁ?
もっと効率のいい、クイックソートという手法もあるようです。