Java [k+;+;]=l[i+;+;]符号是什么意思
我试图找出这个用于合并排序的合并函数,但我不理解a[k++]=l[I++]行。有人能给我一个非简化版的吗Java [k+;+;]=l[i+;+;]符号是什么意思,java,mergesort,Java,Mergesort,我试图找出这个用于合并排序的合并函数,但我不理解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]) {
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++];
}
}
publicstaticvoidmerge(int[]a,int[]l,int[]r,int-left,int-right){
int i=0,j=0,k=0;
而(i
a[k] = l[i];
k = k + 1;
i = i + 1;
a[k] = l[i];
k = k + 1;
i = i + 1;
print(k);
print(i);
假设k=3
和i=5
a[k++] = l[i++];
print(k);
print(i);
输出:46
与
a[k] = l[i];
k = k + 1;
i = i + 1;
a[k] = l[i];
k = k + 1;
i = i + 1;
print(k);
print(i);
输出:46
在java中?或者说你是在谈论C?@ asasq:实际上我指的是C或C++。我添加了缺少的语言标签。在这个过程中指定了评价顺序,所以甚至像<代码> [i++]=b[i+++ ]这样的恐怖。
已定义。但注释中指出:建议代码不要完全依赖于此规范。当每个表达式最多包含一个副作用(作为其最外层的操作)时,以及当代码不完全依赖于表达式从左到右求值所产生的异常时,代码通常更清晰。