[英]How to connect two different arrays?
如果我有一個名稱數組和一個圈速時間數組,我將如何鏈接這兩個數組,以便我可以對時間進行排序並仍然保留關聯的名稱? 這是兩個數組的樣子:
String[] names = { "Paul", "Dan", "Hayden", "Sam", "Pauline"};
int[] times = { 341, 273, 278, 329, 445 };
到目前為止,我運行了一個選擇排序算法,以使最短的時間達到最高的時間,但是我不知道如何使paul保持與341的連接。
我不想連接兩個數組,我希望能夠對times數組進行排序,然后調用與特定時間關聯的名稱。
將時間數組和元素在兩個數組中的交換位置排序在一起,這樣,一旦發生交換,它將保持times和names數組之間的鏈接,這是程序,我按降序進行了排序
public static void main(String[] args){
String[] names = { "Paul", "Dan", "Hayden", "Sam", "Pauline"};
int[] times = { 341, 273, 278, 329, 445 };
for(int outerIndex = 0; outerIndex < times.length; outerIndex++){
for(int innerIndex = outerIndex+1; innerIndex < times.length; innerIndex++){
if(times[outerIndex]<times[innerIndex]){
swap(outerIndex, innerIndex, names, times);
}
}
}
}
在這里,我交換兩個數組中的元素位置:
public static void swap(int outerIndex, int innerIndex, String[] names, int[] times){
int tempTime;
String tempName;
tempTime = times[outerIndex];
tempName = names[outerIndex];
times[outerIndex] = times[innerIndex];
names[outerIndex] = names[innerIndex];
times[innerIndex] = tempTime;
names[innerIndex] = tempName;
}
輸入:
String []名稱= {“ Paul”,“ Dan”,“ Hayden”,“ Sam”,“ Pauline”}};
int []次= {341,273,278,329,445};
輸出:
String []名稱= {“ Pauline”,“ Paul”,“ Sam”,“ Hayden”,“ Dan”};
int []次= {445,341,329,278,273};
請用數組室排序。 例如
names[0] = "Paul"
times [0] = 341
這樣的東西
將名稱和時間數組保持原樣,並使用第三個包含其他兩個索引的數組:
String[] names = { "Paul", "Dan", "Hayden", "Sam", "Pauline"};
int[] times = { 341, 273, 278, 329, 445 };
int[] index = { 0, 1, 2, 3, 4};
對名稱或時間運行排序算法(取決於要排序的方式)。 運行算法時,例如,通過索引數組訪問times數組:
times[index[x]]; // where x is whatever index you are on during your sort
當您發現需要交換兩個項目時,請對索引數組執行交換操作:
swap(index[0], index[1]);
排序算法完成后, 名稱和時間數組將通過其數組位置保持關聯,但是如果您通過索引數組訪問它們,則將按排序順序對其進行訪問。
附言:我為你做功課很臟:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.