두 개의 배열을 입력으로 가져와 두 개의 배열을 병합하거나 연결하고 결과를 세 번째 배열에 저장합니다.
두 배열을 병합하는 논리 아래에 주어진다 -
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++;
}
} 프로그램
아래는 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]);
}
} 출력
위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -
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