2016-03-27 17 views
-2

基本的に、このプログラムでは、乱数の配列を作成し、forループを使用したバブルソートによってそれらを最小から最大までソートするように指示されました。試行錯誤の束で、私のバディと私はそれを理解することができましたが、私はコードを振り返りました。正直なところ、理解することは非常に難しいです。私は入れ子になったループにはあまり慣れていないので、この方法がどのように機能しているかを説明することができます。より具体的には、値jiは何を表します。Nested For Loops説明が必要

public void sort() { 

    int val = 0; 
    for(int i = 0; i < myArray.length; i++) { 

     for(int j = 1; j < (myArray.length - i); j++) { 

      if(myArray[j-1] > myArray[j]) { 

       val = myArray[j-1]; 
       myArray[j-1] = myArray[j]; 
       myArray[j] = val; 
      } 
     } 
    } 
} 

ご回答いただきありがとうございます。

+2

「i」と「j」はループ変数に過ぎません。 –

答えて

0

iおよびjは、配列内のインデックスを表す以外に、本質的な意味を持ちません。最初のforループは、2番目のループとソート方法が配列内の項目数だけ繰り返されるようにするためです。 2番目のループがソートを行います。

if(myArray[j-1] > myArray[j]) { // Checks if the index `j` in the array is less than the one before it. 
    val = myArray[j-1]; // Temporarily stores the greater value. 
    myArray[j-1] = myArray[j]; // Swap the numbers. 
    myArray[j] = val; // Swap the numbers. 
}