两个数组int a[m],b[n]。他们分别是有序的,a足够长(共m + n元素,末尾有n空位),请把它们归并到数组a中
采用从后往前merge的方法:merge的思路定义:i,j,k,分别指向三个地方。
#includevoid merge(int *a,int *b,int m,int n);main(){ int a[10],b[4]; int i,m=6,n=4; printf("请输入两个有序数列:\n"); for(i=0; i =0 && j>=0){ if(a[i]>b[j]){ a[k]=a[i]; i--; } else{ a[k]=b[j]; j--; } k--; } while(i>=0){ a[k]=a[i]; a[k]=a[i]; i--; k--; } while(j>=0){ a[k]=b[j]; j--; k--; }}