Java 我对如何正确地编写while循环感到困惑。如何确保它遍历数组中的所有值

Java 我对如何正确地编写while循环感到困惑。如何确保它遍历数组中的所有值,java,Java,输出应该是数组按降序排序,但我的代码在一次迭代后停止,并且没有对整个数组进行完全排序,我不知道如何修复它。我是初学者,请用简单的术语解释逻辑 public static int[] insertionSort(int[] array){ for(int i1 = 1; i1 < array.length; i1++){ int indexCurrent = i1; boolean done = false; while(indexC

输出应该是数组按降序排序,但我的代码在一次迭代后停止,并且没有对整个数组进行完全排序,我不知道如何修复它。我是初学者,请用简单的术语解释逻辑

 public static int[] insertionSort(int[] array){
    for(int i1 = 1; i1 < array.length; i1++){
        int indexCurrent = i1;
        boolean done = false;
        while(indexCurrent <= (array.length -1) && done == false){
            if(array[indexCurrent] > array[indexCurrent-1]){
                int temp = array[indexCurrent-1];
                array[indexCurrent-1] = array[indexCurrent];
                array[indexCurrent] = temp;
                indexCurrent++;
            }else{
                done = true;
            }
           
        }

    }
公共静态int[]插入排序(int[]数组){
for(int i1=1;i1
返回数组;
}

您应该在超电流
中递减

while(indexCurrent > 0 && !done){
    if(array[indexCurrent] > array[indexCurrent-1]){
        int temp = array[indexCurrent-1];
        array[indexCurrent-1] = array[indexCurrent];
        array[indexCurrent] = temp;
        indexCurrent--;
    }else{
        done = true;
    }
}
将您的代码与其他代码进行比较。