CP Sorting Algorithm | C Programming | Factsprime – DSA

Write a Modular C Programming code for ‎CP Sorting Algorithm DSA

 

This a special type of sorting which deals with dividing according to need and merging it !!! 

Refer : C Programming HackerRank all solutions for Loops | Arrays | strings | Data Structures | Linked lists | Stacks | Queues | Binary Trees

 

CODE:

#include<stdio.h>

void printArray(int a[], int n)
{
    for (int i = 0; i < n; i++)
        printf("%d ", a[i]);
    printf("\n");
}

void combine(int A[], int mid, int low, int high)
{
    int i, j, k, B[1000];
    i = low;
    j = mid + 1;
    k = low;

    while (i <= mid && j <= high)
    {
        if (A[i] < A[j])
            B[k++] = A[i++];
        
        else
            B[k++] = A[j++];
        
    }
    while (i <= mid)
        B[k++] = A[i++];
    
    while (j <= high)
        B[k++] = A[j++];
    
    for (int i = low; i <= high; i++)
        A[i] = B[i];
    

}

void chinmay(int a[], int ub, int high)
{
    int mid=ub,i=ub+1;
    ub=ub+1;
    if(ub<high)
    {
        while(a[i]<=a[i+1])
            ub=++i;
        

        combine(a, mid, 0, ub);
        chinmay(a,ub,high);
    }
}

void specialSort(int a[], int low, int high){
    int mid=0,i=0,ub=1;
        if(ub<high)
        {
        while(a[i]<=a[i+1])
            mid=++i;
        i++;
        while(a[i]<=a[i+1])
            ub=++i;
        if(ub<high)
        {
        combine(a, mid, low, ub);
        chinmay(a,ub,high);
        }
        else
        return ;
 }
}

int main()
{
    int a[1000],n;

    printf("Enter the size: ");
    scanf("%d",&n);
    printf("Enter Numbers: ");
    for(int i=0;i<n;i++)
        a[i]=(rand()%10);
 
    printArray(a, n);
    specialSort(a, 0, n);
    printf("Sorted array is: ");
    printArray(a, n);
    

}

OUTPUT

Enter the size: 15
Enter Numbers: 1 7 4 0 9 4 8 8 2 4 5 5 1 7 1
Sorted array is: 0 1 1 1 2 4 4 4 5 5 7 7 8 8 9

Please find some more codes of Loops, Condition Statements, 1D Arrays, 2D Arrays, Strings, Pointers, Data Structures, Files, Linked lists, Stacks, Queues, Binary Trees, MISC, Solved model question papers & Hacker Rank all solutions on the below page:

Top 100+ C Programming codes – KLE Technological University

Leave a Comment

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

Welcome to FactsPrime

Sorry, We have detected that you have activated Ad-Blocker. Please Consider supporting us by disabling your Ad Blocker, It helps us in maintaining this website. To View the content, Please disable adblocker and refresh the page.

Thank You !!!