首页 > 解决方案 > a[k++] = l[i++] 表示法是什么意思

问题描述

我试图找出合并排序的合并函数,但我不明白 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++];
    }
}

标签: javamergesort

解决方案


a[k++] = l[i++];

是相同的

a[k] = l[i];
k = k + 1;
i = i + 1;

假设k = 3i = 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


推荐阅读