2017-10-08 16 views
-5

私はクイックソートについてのビデオを見て、私は、コードを理解していない:誰も私にこのクイックソートの例を説明できますか?

public static void main(String[] args){ 
    int[] array = { 1, 2, 3, 4, 5 }; 
    int left = 0; 
    int right = array.length - 1; 

    for (left = 0; left < right; left++, right--) { 
     int temp = array[left]; 
     array[left] = array[right]; 
     array[right] = temp; 
    } 

    for (int i = 0; i < array.length; i++) { 
     System.out.println(array[i]); 
    } 
} 

この部分は私を混乱させるです:

int temp = array[left]; 
array[left] = array[right]; 
array[right] = temp; 

あなたは私にそれを説明していただけますか?

+5

:ここ


は、プロセスの小さな図です。 –

+2

これは、配列内の要素を入れ替える方法です。 'temp'変数は、左から右への相互交換のための' array [left] '値を格納するための中間のプレースホルダーです。 – Sid

+4

それはクイックソートさえありません。それは配列を逆転させるだけです。 – RealSkeptic

答えて

0

コードスニペットは、array[left]array[right]の値を交換します。

それはすぐに上書きされますので、それは非常に最初の により一時変数temparray[left]値を記憶ん

その後、の値をarray[left]に上書きし、値はarray[right]に格納されます。

最後に、array[right]に、tempに格納されている古いarray[left]記憶値を、書き込みます。それだけで指定されたインデックスにある要素をスワップだ

Illustration

関連する問題