2017-10-09 2 views
0

私はJava配列を調べて、他の誰かを使用するのではなく、独自のSortArray()関数を作成しようとしました。私が配列 [1、2、3、4、5]をSortArray()関数に渡すと、別の配列[5、4、3、2、1]が返され、配列をハイからローにソートします。代わりに、関数は配列内の配列とまったく同じ配列を返します。私は、各コードブロックがコード内で何をすべきかをコメントしました。あなたが何かを見つけたら教えてください!このカスタムsortarray関数が配列をソートできないのはなぜですか?

public static int[] sortArray(int[] array) { 
    //Declare the highest value found so far 
    int highest; 

    //loop through every index in the array 
    for (int minIndex = 0; minIndex < array.length; minIndex++) { 

     //Set the current highest value to the first index 
     highest = array[minIndex]; 

     //loop through every index past the minimum to check if there is a higher numer 
     //do not check the indexes before the minIndex 
     for (int i = 0 + minIndex; i < array.length; i++) { 
      //Check to see if the current index is higher than the highest 
      //if so, make that value the new highest and loop again from the next index 
      if (array[i] > highest) { 
       highest = array[i]; 
       minIndex ++; 
      } 
     } 
    } 
    return array; 
} 
+0

単純に、アレイを更新することはありません。 – Robert

+0

あなたは今どこでアレイを変更していますか?あなたがしているのは、forループ変数である 'highest'と' minIndex'を変更するだけです。変更する必要はありません – Tyler

答えて

1

arrayは変異していません。あなたはarrayにも要素を変異させていません。最高のものを追跡しているだけです。スコープがなくなるとhighestがなくなります。

関連する問題