所以我得到了这个学校作业:
编写一个方法来获取两个整数数组并
x[]
使用y[]
foreach 循环进行排序。
x[]
大小为 10,所有元素都用 初始化Math.random()
,y[]
大小 >10 并用零填充。该方法应将x[]
数组排序为y[]
和return y[]
。
由于我只剩下 foreach 我无法找到一种方法来引用数组中的其他元素以比较它们。有任何想法吗?
这是我 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;
}
}
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”循环,并且练习语句不会告诉您仅使用它。