在我的代碼,我得到通過元件迴路的列表和計算的一些值,現在:在ratioArray得到在Java(機器人)一個有序數組的原始索引
double targetRatio = Math.min((double)w/h, (double)h/w);//height & width of the screen
List<Size> sizes //populated with supported height and width
double ratioArray[];
int i;
for (i = 0; i <= sizes.size(); i++)
{
double ratio = Math.min((double)sizes.get(i).width/sizes.get(i).height, (double)sizes.get(i).height/sizes.get(i).width);
ratioArray[i] = Math.abs(ratio - targetRatio);
// Math.min((double)sizes.get(i).width/w, (double)w/sizes.get(i).width);
// Math.min((double)h/sizes.get(i).height, (double)sizes.get(i).height/h);
//sizes.get(i).width
//sizes.get(i).height
}
下的值[I ]我得到了更好的比例;現在我被困在定位最佳比例,我可以這樣做:
Arrays.sort(ratioArray);
但是,那麼我如何得到索引回來?我必須使最小值指向它的大小
迭代兩次而不是直接在計算過程中做最小事情的原因在哪裏? 這個雙重迭代的唯一原因是保留比率數組以便以後重複使用。 對於這種方法以及問題本身,目前還不清楚,爲什麼最小的比例是你想要得到的東西... – fkerber 2012-01-04 16:22:12
是的,它可以在計算過程中完成,但我張貼這種方式更好的理解和簡單...優化是後期首先你需要實現你想要的。 – 2012-01-04 16:28:55
是的,這是正確的一般 - 也許這是你的答案「最好」,讓我感到不安。 – fkerber 2012-01-04 16:31:07