$array = array(1, 2, 3, 4, 5, ..., N);
数もありD = 10%
ます。次のような方法で配列をソートする最速の方法は何ですか?
$sorted_array = {a[i]}
の要素が$array
混在した順序で正確に含まれていますが、次の要素も含まれています。
abs(a[i + 1] - a[i]) >= N * 10%
可能な[i]
限りランダムに見えます。
例えば、
// assume D = 25%
$array = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// so the difference between any neighbors is >= 4 = 10 * 25%.
$sorted_array = array(4, 8, 3, 7, 1, 5, 9, 2, 6, 10);
もちろん、D
が大きい場合、必要な配列をソートすることはできません。100% 完璧な結果は必要ありませんが、数値が "ランダム化" され、ほとんどの数値が少なくとも 10% 異なるようにしたいのです。
私は奇妙な仕事をしていますが、それには実用的な領域があります。画像からランダム化された行を抽出したいのですが、それらはできるだけ異なる必要があります。もちろん、デジタル画像 (写真など) の隣接する線は非常によく似ています。
ちゃんと説明した?