任何人都能解释一下这个快速举措的例子吗?

时间:2017-10-08 13:41:13

标签: java arrays algorithm sorting quicksort

我观看了一个关于快速排序的视频,但我不明白代码:

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;

你可以向我解释一下吗?

1 个答案:

答案 0 :(得分:0)

代码段交换了array[left]array[right]的值,仅此而已。

首先记住临时变量array[left]temp的值,因为它很快就会被覆盖。

之后覆盖 array[left]处的值,其值存储在array[right]中。

最后,它将存储在array[left]中的旧temp记忆值写入array[right]

以下是该过程的一个小例子:

Illustration