2017-10-08 107 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]的值,僅此而已。


它通過第一記憶,因爲它很快就被覆蓋的array[left]在臨時變量temp值這樣做。

之後它優先於的值在array[left]與存儲在array[right]中的值。

最後寫入的老array[left]記憶值,存儲在temp,到array[right]


下面是該方法的小插圖:

Illustration

相關問題