質問<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
回答者 wakky


プロミングはあまり得意じゃありませんが
a(0)とa(1)~a(n)の大小比較をひとずつやって
添え字を交換(swap)する操作を繰り返せばいいんじゃないでしょうか?
それで、a(0)が最小になります。
次にa(1)とa(2)~a(n)を比較して・・・
その繰り返しでできるんじゃないかなぁ?
もっと効率のいい、クイックソートという手法もあるようです。