Lấy hai mảng làm đầu vào và cố gắng hợp nhất hoặc nối hai mảng và lưu trữ kết quả trong mảng thứ ba.
Lôgic để hợp nhất hai mảng được đưa ra bên dưới -
J=0,k=0
for(i=0;i<o;i++) {// merging two arrays
if(a[j]<=b[k]){
c[i]=a[j];
j++;
} else {
c[i]=b[k];
k++;
}
} Chương trình
Dưới đây là chương trình chỉ ra cách hợp nhất hai mảng trong ngôn ngữ lập trình C -
#include<stdio.h>
#include<stdlib.h>
int main(){
int a[10],b[10],c[20],m,n,o,i,j,k,temp;
printf("Enter size of Array1\n");
scanf("%d",&n);
printf("Enter size of Array2\n");
scanf("%d",&m);
o=m+n; //size of third array
printf("Enter Elements of Array1\n");
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
printf("Enter Elements of Array2\n");
for(i=0;i<m;i++){
scanf("%d",&b[i]);
}
//sorting first array
for(i=0;i<n;i++){
for(j=0;j<n-1-i;j++){
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
//sorting second array
for(i=0;i<m;i++){
for(j=0;j<m-1-i;j++){
if(b[j]>b[j+1]){
temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;
}
}
}
printf("Elements of Array1\n");
for(i=0;i<n;i++){
printf("a[%d]=%d\n",i,a[i]);
}
printf("Elements of Array2\n");
for(i=0;i<m;i++){
printf("b[%d]=%d\n",i,b[i]);
}
j=0;
k=0;
for(i=0;i<o;i++){ // merging two arrays
if(a[j]<=b[k]){
c[i]=a[j];
j++;
}
else{
c[i]=b[k];
k++;
}
}
printf("Merged array is :\n");
for(i=0;i<o;i++){
printf("c[%d]=%d\n",i,c[i]);
}
} Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
Enter Elements of Array1 1 2 3 4 Enter Elements of Array2 6 8 3 Elements of Array1 a[0]=1 a[1]=2 a[2]=3 a[3]=4 Elements of Array2 b[0]=3 b[1]=6 b[2]=8 Merged array is: c[0]=1 c[1]=2 c[2]=3 c[3]=3 c[4]=4 c[5]=6 c[6]=8