두 개의 정렬된 배열을 병합하는 C 프로그램

2025 단어 carrayssortedmerge
병합 정렬은 정렬되지 않은 목록을 더 작은 하위 목록으로 재귀적으로 나누고 정렬한 다음 정렬된 목록을 생성하기 위해 함께 병합하는 일종의 정렬 알고리즘입니다.

병합 정렬은 데이터를 한 번만 추가로 통과하면 되기 때문에 효율적인 정렬 알고리즘입니다. 또한 최악의 경우 성능 문제가 발생하지 않는 좋은 속성도 있습니다.

C 프로그래밍 언어를 사용하여 두 개의 정렬된 배열을 병합하는 방법



Merging two sorted arrays 프로그래밍 및 컴퓨터 과학의 일반적인 작업입니다. 배열은 대부분의 프로그래밍 언어에 있는 병합 기능을 사용하여 병합할 수 있습니다.

병합 함수는 길이가 같은 두 개의 정렬된 배열을 입력으로 사용하여 하나의 정렬된 배열로 병합합니다. 병합 기능은 각 배열의 첫 번째 요소를 비교하여 작동합니다. 두 배열의 첫 번째 요소가 같으면 두 번째 요소를 비교하고 같으면 세 번째 요소를 비교하는 식으로 두 배열 사이에 차이가 있거나 두 배열이 모두 확인될 때까지 계속합니다.

#include <stdio.h>
int main()
{
    int n1,n2,n3;            //Array Size Declaration
    int a[10000], b[10000], c[20000];
    printf("Enter the size of first array: ");
    scanf("%d",&n1);
    printf("Enter the array elements: ");
    for(int i = 0; i < n1; i++)      
       scanf("%d", &a[i]);
    printf("Enter the size of second array: ");
        scanf("%d",&n2);
    printf("Enter the array elements: ");
    for(int i = 0; i < n2; i++)      
       scanf("%d", &b[i]);
    n3 = n1 + n2;
    for(int i = 0; i < n1; i++)
       c[i] = a[i];
    for(int i = 0; i < n2; i++)     
        c[i + n1] = b[i];

    printf("The merged array: ");
    for(int i = 0; i < n3; i++)
        printf("%d ", c[i]);        //Print the merged array

    printf("\nFinal array after sorting: ");
    for(int i = 0; i < n3; i++){
        int temp;
        for(int j = i + 1; j < n3; j++) {
            if(c[i] > c[j]) {
                temp = c[i];
                c[i] = c[j];
                c[j] = temp;
            }
        }
    }   
    for(int i = 0; i < n3 ; i++)       //Print the sorted Array 
        printf(" %d ",c[i]);
    return 0;   
}


좋은 웹페이지 즐겨찾기