所以我想做的是通过遍历整个数组对数组进行排序,每次将值与数组中的最小值交换。我已经创建了一种找到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;
        }

09-13 05:37