我真的需要一些幫助解決這個問題。我試圖用Java代碼編寫一個函數,但是我被卡住了,我不知道如何繼續。我有這個數據包含1行(區)和7列(醫院)。該地區有一個百分比,這個人會在醫院1結束了,另一個%的將在H2等最終的數據看起來是這樣的:如何從陣列中獲得第二高值,第三高值等
hospital h1 h2 h3 ...
area
a1 11 45 3 ...
我曾經在一個雙陣列保存的數據包含7個值。我有這個隨機生成器fcn,它隨機選擇我們所在的數組中的哪個索引值。如果這個隨機生成器選擇指數= 0這將意味着11%,如果它隨機選擇索引= 2,這將意味着3%等
問題是,我做完這個後,我想檢查這家醫院是否閒置或不。如果它是空閒的,那麼我想返回隨機選擇的整數索引值。如果不是空閒的,我想選擇第二高百分比的醫院,如果該醫院處於空閒狀態,則返回此int指數值,否則繼續並檢查第三高百分比並進行另一次檢查等。如果所有醫院都沒有閒置,則返回隨機選擇的值。
這是我迄今所做的:
double vector[] = new double[distrToEachHosp.length]();
//start by setting the contents to index
for(int index=0; index<vector.length; index++){
vector[index] = index;
}
for(int i=0; i <= vector.length; i++){
for(int x=1; x <= vector.length; x++){
if (distrToEachHosp[vektor[x]] > distrToEachHosp[vektor[x+1]]){ //compare content that corresponds to index
//move index
int temp = vector[x];
vector[x] = vector[x+1];
vector[x+1] = temp;
}
}
}
return vektor;
int rndValue = randomGenerator(distrToEachHosp);
for(int i=0; i<vector.length; i++){
if(hospital.get(i).namn == hospitalNameVariable[rndValue]){ //hospitalNameVariable is a variable containing the names of the hospitals
if(hospital.get(i).idle()>0){
return rndValue;
} else {
if(vector[0] >= rndValue) {
return vector[0];
} else if(vektor[1] >= slumpVärde) {
......
}
}
}
這是我卡住。我現在用第一種算法對數據進行排序,但從邏輯上講,我不知道如何包含所有的情況。
你爲什麼不簡單地排序呢? O.o –