1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| #include "stdio.h" #include "string.h" void merge(int a[],int n,int b[],int m,int *c){ int i,j; for (i=j=0; i<n&&j<m;){ *c++=a[i]<b[j]?a[i++]:b[j++];} while (i<n){*c++=a[i++];} while (j<m){*c++=b[j++];} } int main() { int n=5,m=3; int numbers1[]={21,23,24,25,26}; int numbers2[]={12,13,20}; int numbers3[8]; merge(numbers1, n, numbers2, m, numbers3); for (int i=0; i<(m+n); i++) { printf("%d ",numbers3[i]); } printf("\n"); n=5;m=5; int numbers4[5]={1,3,4,8,10}; int numbers5[5]={-12,-10,22,100,10000}; int numbers6[10],*p=numbers6; merge(numbers4, n, numbers5, m, p); for (int i=0; i<(m+n); i++) { printf("%d ",p[i]); } }
|