2011-12-17 21 views
0

与えられた画像リスト、それぞれフィールド位置。私は間違った方法で番号をつけた。注文番号を反転するアルゴリズム

このリストは、その位置に基づいて順序付けられます.1は最上位のアイテムです。私は間違いなくその項目にの最高番号の番号を与えましたが、それは最低限与えられているはずです。

私は彼らに

[a=> 9, b=> 7, c=> 3, d=> 2, e=> 1] 

番号を付けしかし、私は彼らが私はこのために使用すべきアルゴリズムのどのような

[e=> 9, d=> 7, c=> 3, b=> 2, a=> 1] 

番号を付けたいですか? Rubyの(疑似)コードのボーナスポイント:)

実際には、そのリストには約400個の画像があり、位置番号(Image.position)は1040から始まり1になります。これはいくつかの隙間があることを意味する(例えば、341〜600が存在しない)。

注1明らかに私のコードでは順序を逆にすることができます。しかし、それは醜い、混乱し、 "move_to_top"のようなメソッドの動作を壊します。私はそれもまた書き直す必要があります。

注2:このコードでは負の数が許容されているようですので、各位置番号に* -1を入力すると機能します。しかし、醜く混乱しているように感じます。

答えて

1

番号を逆にする必要があり、使用する正確な番号がわからない場合は、リストの最大番号よりも大きい番号を選択し、番号を減算して新しい番号を取得します。

例:10を選択した場合、10-9 = 1、10-7 = 3,10-3 = 7,10-2 = 8,10-1 = 9

関連する問題