我试图找出这个merge sort的merge函数,但是我不理解a[k++]=l[i++]行。有人能给我一个非简化版的吗?
public static void merge(int[] a, int[] l, int[] r, int left, int right) {
int i = 0, j = 0, k = 0;
while (i < left && j < right) {
if (l[i] <= r[j]) {
a[k++] = l[i++];
}
else {
a[k++] = r[j++];
}
}
while (i < left) {
a[k++] = l[i++];
}
while (j < right) {
a[k++] = r[j++];
}
}
1条答案
按热度按时间w8rqjzmb1#
与相同
假设
k = 3
以及i = 5
.输出:4 6
与相同
输出:4 6