所以我想做的是通过遍历整个数组对数组进行排序,每次将值与数组中的最小值交换。我已经创建了一种找到minValue的方法,但是我不确定如何用我的当前值交换该值。这可能是一个可怕的解释,但这是代码:
public static int findMin(int[] numList, int start, int end){
int minIndex = numList[0];
for (int i = start; i < end; i++) {
if(numList[i] < minIndex){
minIndex = numList[i];
}
}
return minIndex;
}
我的循环应该对数组进行排序:
for (int i = 0; i < numList.length; i++) {
int minIndex = findMin(numList,i,10);
numList[i] = minIndex;
}
如您所见,这仅将
numList[i]
替换为minValue。那么,如何将numList [i]中已有的值与数组minValue中的任何位置交换?谢谢!
最佳答案
更正的方法是
public static int findMin(int[] numList, int start, int end){
int minVal= numList[start];
int minIndex = start;
for (int i=start; i <end; i++) {
if(numList[i] <minVal){
minIndex=i;
minVal=numList[i];
}
}
return minIndex;
}
校正后的循环是
for (int i = 0; i < numList.length; i++) {
minIndex = findMin(numList,i,numList.length);
temp=numList[i];
numList[i]=numList[minIndex];
numList[minIndex]=temp;
}