在這種情況下,我有一個0到256之間的4個整數數組,需要按升序排序。例如:Javascript數組:算法排序和挑選
[0, 12, 211, 4]
當我排序,我得到(當然):[0, 4, 12, 211]
我只是通過請求Array[0]
(第一索引)
現在,我的問題是讓整數值;很多時候,數組中有相同的值。像:
[0, 0, 0, 12] // already sorted
在這些情況下我需要從最上面的相等值挑選一個隨機索引(0,0,0
),其他possiblities是(後分選):
[211, 211, 211, 255] // results in 0 OR 1 OR 2
[13, 13, 125, 256] // results in 0 OR 1
[4, 211, 211, 255] // results in 0
[0, 1, 1, 4] // results in 0;
所以我需要挑選從升序排序數組的最頂層值中選擇一個隨機索引。 這是在排序時完成的,還是以比很多if-elses
更簡單的方式完成?
請你澄清一下你want.Pick從陣列最頂端值的隨機指數? ?????難道當最低值被重複多次,你需要回到一切都取決於此元素出現的索引。 – Algorithmist 2011-02-15 11:39:16
@Algorithmist,確實如此。 – 2011-02-15 11:47:07