Merge sort in c

darkenmac

Junior member
  • Jul 5, 2008
    204
    11
    18
    while(i<n && j<m ) {

    if(a < b[j] )
    {
    c[k] = a;
    i++;
    }
    else
    {
    c[k] = b[j];
    j++;
    }

    k++;
    }


    oka atulata c[k] eka print wenna dapun hariyata store wenawada kiyala balanna
     

    Tom Riddle

    Member
    Aug 31, 2007
    1,833
    196
    0
    A bn mokadda meke awla kiyannakooo :(:(:(:(:(

    danne nathnam udavvak vidiyata bump ekak hari dala yanna..
    (issella header files 2 danna amathaka una :D )
    meka thiyenne c language 1n




    1. Meka MergeSort algorithm eka nemei. Me MergeSort wala "Merge" step eka witharayi. me merge step eka mulama array eka 2ta kada kada recursively call wenna ona. mata meka wisthara karanna nam welawak ne pothakin hariyata balala therum ganna

    2. Methana weraddak thiyenawa. me widiyata wenas wenna ona

    if(i == n) {
    while(j< m )
    {
    c[k] = b[j];
    j++;
    k++;
    }
    }
    else
    {
    while(i < n )
    {
    c[k] = a;
    i++;
    k++;
    }

    3. wediya hondayi oka if (i == n) , else if (j ==m), else {printf "error!!!"} kiyala liwwanam. pahadili saha anthima else ekata awama therenewa mokakhari nohithapu deyak wela kiyala

    4. variable walata therumak athi nam danna. pissu hadenewa balanna giyama.



    5. me code eken wenna one de wenawa. methana (http://www.compileonline.com/compile_c_online.php) online compile karala baluwe compiler ekak ne me man inna machine eka

    Code:
    #include<stdio.h>
    
    void main() 
    {
    int n,m, i, j,k;
    
    n = 5;
    int a[5] = {8,5,1,6,3};
    
    
    m = 3;
    int b[3] = {2,7,10};
    
    int c[8]; //= {0,0,0,0,0,0,0,0};
    
    /*
    printf("Enter how many numbers you want First Array:" );
    scanf("%d", &n);
    
    printf("Enter the %d numbers:\n", n);
    for (i = 0; i < n; i++) 
    scanf("%d", &a[i]);
    
    printf("Enter how many numbers you want Second Array: ");
    scanf("%d", &m);
    
    printf("Enter the %d numbers:\n", n);
    for (j = 0; j < m; j++) 
    scanf("%d", &b[j]);
    
    printf("\n The given First array is:\n");
    for (i = 0; i < n; i++) 
    printf("\n\t\%d", a[i]);
    
    printf("\n The given Second array is:\n");
    for (j = 0; j < m; j++) 
    printf("\n\t\%d", b[j]);
    */
    i,j,k=0;
    
    while(i<n && j<m ) {
    
    if(a[i] < b[j] )
    { 
    c[k] = a[i];
    i++;
    }
    else
    {
    c[k] = b[j];
    j++;
    }
    
    k++;
    }
    
    printf("i = %d, j = %d, k = %d", i, j, k);
    if(i == n) {
    while(j< m )
    {
    c[k] = b[j];
    j++;
    k++;
    }
    }
    else
    {
    while(i < n )
    {
    c[k] = a[i];
    i++;
    k++;
    }
    }
    printf("\n\n The sorted array using Merge sort is:\n");
    int r;
    for (r = 0; r < (n+m); r++) 
    printf("\n\t%d", c[r]);
    //getch();
    
    }
    }


    oka wage umbe code eka hadala balanna. hard code karapu values ayin karala data input karana kalla eeta passe test karanna.

     
    Last edited:

    rock pora

    Well-known member
  • May 18, 2011
    11,951
    2,791
    113
    ###~.:::.සියනෑ කෝරළේ.::.~##


    1. Meka MergeSort algorithm eka nemei. Me MergeSort wala "Merge" step eka witharayi. me merge step eka mulama array eka 2ta kada kada recursively call wenna ona. mata meka wisthara karanna nam welawak ne pothakin hariyata balala therum ganna

    2. Methana weraddak thiyenawa. me widiyata wenas wenna ona

    if(i == n) {
    while(j< m )
    {
    c[k] = b[j];
    j++;
    k++;
    }
    }
    else
    {
    while(i < n )
    {
    c[k] = a;
    i++;
    k++;
    }

    3. wediya hondayi oka if (i == n) , else if (j ==m), else {printf "error!!!"} kiyala liwwanam. pahadili saha anthima else ekata awama therenewa mokakhari nohithapu deyak wela kiyala

    4. variable walata therumak athi nam danna. pissu hadenewa balanna giyama.



    5. me code eken wenna one de wenawa. methana (http://www.compileonline.com/compile_c_online.php) online compile karala baluwe compiler ekak ne me man inna machine eka

    Code:
    #include<stdio.h>
    
    void main() 
    {
    int n,m, i, j,k;
    
    n = 5;
    int a[5] = {8,5,1,6,3};
    
    
    m = 3;
    int b[3] = {2,7,10};
    
    int c[8]; //= {0,0,0,0,0,0,0,0};
    
    /*
    printf("Enter how many numbers you want First Array:" );
    scanf("%d", &n);
    
    printf("Enter the %d numbers:\n", n);
    for (i = 0; i < n; i++) 
    scanf("%d", &a[i]);
    
    printf("Enter how many numbers you want Second Array: ");
    scanf("%d", &m);
    
    printf("Enter the %d numbers:\n", n);
    for (j = 0; j < m; j++) 
    scanf("%d", &b[j]);
    
    printf("\n The given First array is:\n");
    for (i = 0; i < n; i++) 
    printf("\n\t\%d", a[i]);
    
    printf("\n The given Second array is:\n");
    for (j = 0; j < m; j++) 
    printf("\n\t\%d", b[j]);
    */
    i,j,k=0;
    
    while(i<n && j<m ) {
    
    if(a[i] < b[j] )
    { 
    c[k] = a[i];
    i++;
    }
    else
    {
    c[k] = b[j];
    j++;
    }
    
    k++;
    }
    
    printf("i = %d, j = %d, k = %d", i, j, k);
    if(i == n) {
    while(j< m )
    {
    c[k] = b[j];
    j++;
    k++;
    }
    }
    else
    {
    while(i < n )
    {
    c[k] = a[i];
    i++;
    k++;
    }
    }
    printf("\n\n The sorted array using Merge sort is:\n");
    int r;
    for (r = 0; r < (n+m); r++) 
    printf("\n\t%d", c[r]);
    //getch();
    
    }
    }
    oka wage umbe code eka hadala balanna. hard code karapu values ayin karala data input karana kalla eeta passe test karanna.



    machoo mn meka dan bn dakke,
    mn error eka fix karagattha bn :).uba kiyana vidiyata while loop vala awlak thama bn thibbe :D
    thanx machoooooooo