书本上算法是这样的
void merge(SeqList A,SeqList B,SeqList C){
int i=0,j=0,k=0;
while(i<A.last&&j<B.last){
if(A.data[i]<B,last[j]){
C->data[k++]=A.data[i++];
}
else{
C->data[k++]=B.data[i++];
}
}
while(i<=A.last){C->data[k++]=A.data[i++];}
while(i<=B.last){C->data[k++]=B.data[j++];}
C->last=k-1;
}
我想问的是,C->data[k++]=A.data[i++];这条语句中的k++,是先自增,还是整个语句执行完再自增。个人理解是先自增的,不过先自增的话,这个算法就错了,因为C->data[0]没有取到值。
第1个回答 2011-11-30
先取值再自增。
如果是++k就是先自增再取值本回答被提问者采纳
如果是++k就是先自增再取值本回答被提问者采纳