的foreach所以我得到了這所學校分配:排序整數數組在Java
寫方法採取兩個整型數組,並使用foreach循環排序
x[]
到。
x[]
是大小爲10,具有Math.random()
初始化所有的元件,並且是大小> 10和零填充。該方法應該將x[]
數組排序爲和return y[]
。
由於我只剩下foreach,我無法想出一個方法來引用數組中的其他元素來比較它們。有任何想法嗎?
的foreach所以我得到了這所學校分配:排序整數數組在Java
寫方法採取兩個整型數組,並使用foreach循環排序
x[]
到。
x[]
是大小爲10,具有Math.random()
初始化所有的元件,並且是大小> 10和零填充。該方法應該將x[]
數組排序爲和return y[]
。
由於我只剩下foreach,我無法想出一個方法來引用數組中的其他元素來比較它們。有任何想法嗎?
int[] crazySort(int[] x, int[] y) {
System.arraycopy(x, 0, y, 0, x.length);
int i = 1; // cheating
for (int n : y) { // <- this is your foreach, you will never use the n variable :D
if (i == x.length) break; // cheating again
for (int j = i-1; j >= 0; j--) { // finally doing something reasonable
if (y[j+1] < y[j]) {
int temp = y[j+1];
y[j+1] = y[j];
y[j] = temp;
}
}
i++;
}
return y;
}
希望老師發現它很有趣,至少和練習語句一樣有趣。此解決方案使用java「foreach」循環,並且練習語句不會告訴您僅使用它。
int [] x = new int [] {15,10,7, 1,7,6,27,8,2,17}; int [] y = new int [10]; int index; int count; (int i1:x)的 { index = 0; count = 0; (int i2:x){ if(i2
你的朋友的解決方案似乎'hacky'足以獲得好評。 :P改變變量的名字,放幾個無用的計數器,就完成了。 – gd1 2013-02-20 23:23:55
這是我100%認真的回答。
public static void completelyLegitSort(int[] x,int[] y){
for(int n:x){
System.arraycopy(x, 0, y, 0, x.length);
java.util.Arrays.sort(y);
break;
}
}
你是什麼意思?「由於我只剩下foreach,我無法想出一個方法來引用數組中的其他元素來比較它們。」? – 2013-02-20 23:02:44
Java對於(E elem:collection){}有一種foreach語句''但是你確定你必須使用它嗎? – gd1 2013-02-20 23:03:21
@RaulGogo:我正在尋找一種方法來做一些類似於經典for循環的方法:'if(x [i]
2013-02-20 23:06:10