问题描述
我试图找出用于合并排序的合并函数,但是我不理解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++];
}
}
解决方法
a[k++] = l[i++];
与
相同a[k] = l[i];
k = k + 1;
i = i + 1;
假设k = 3
和i = 5
。
a[k++] = l[i++];
print(k);
print(i);
输出:4 6
与
相同a[k] = l[i];
k = k + 1;
i = i + 1;
print(k);
print(i);
输出:4 6