#57_Merge Sort Algorithm

 #include <stdio.h>

//Merge Sort Algorithm
void print_array(int *arrint size){
    for (int i = 0; i < size; i++)
        printf("%d "arr[i]);
    printf("\n");
}
void merge(int *Aint lowint midint high){
    int temp[high + 1];
    int i = low, j = mid + 1, k = low;
    while (i <= mid && j <= high){
        if (A[i] < A[j]){
            temp[k] = A[i];
            i++;
            k++;
        }
        else{
            temp[k] = A[j];
            j++;
            k++;
        }
    }
    while (i <= mid){
        temp[k] = A[i];
        i++;
        k++;
    }
    while (j <= high){
        temp[k] = A[j];
        j++;
        k++;
    }
    for (int i = low; i <= high; i++)
        A[i] = temp[i];
}
void merge_sort(int *Aint lowint high){
    if (low < high){
        int mid = (low + high/ 2;
        merge_sort(Alow, mid);
        merge_sort(A, mid + 1high);
        merge(Alow, mid, high);
    }
}
int main(){
    int A[] = {12416915261813};
    int size = 10;
    print_array(A, size);
    merge_sort(A, 0, size - 1);
    print_array(A, size);
    return 0;
}

Comments

Popular posts from this blog