我已經看到了在如下兩種不同方式插入排序的實現,插入排序實現差異
方法1:
for (int out = 1; out < numbers.length; out++) {
int temp = numbers[out];
int in = out - 1;
while (in >= 0 && numbers[in] > temp) {
numbers[in + 1] = numbers[in];
numbers[in] = temp;
in--;
}
}
方法2:
int S[] = { 20, 25, 10};
int N = S.length;
for (int i = 1; i < N; i++) {
int j = i - 1;
int temp = S[i];
while (j >= 0 && S[j] > temp) {
S[j + 1] = S[j];
j--;
}
S[j + 1] = temp;
}
,但我不能理解爲什麼在第二種方法中交換不在while循環中?有沒有理由讓它在while循環旁邊?