Quick sort

#include <stdio.h>

#include <stdlib.h>


/* Deklarasi Global */

int tabInt[6] = {6,7,8,3,4,5};


/* Prosedur Pivot Pinggir */

void pivotPinggir(int l, int r)

{

    int i,j,temp;

    i=l;

    j=r;

    

    do

    {

        //Looping pivot kiri jalan ke kanan

        while((tabInt[i]<tabInt[r]) && (i<=j))

        {

            i=i+1;

        }

        

        //Looping pivot kanan jalan ke kiri

        while((tabInt[j]>tabInt[l]) && (i<=j))

        {

            j=j-1;

        }

        

        if(i<j)

        {

            //Swap nilai array

            temp=tabInt[i];

            tabInt[i]=tabInt[j];

            tabInt[j]=temp;

            i=i+1;

            j=j-1;

        }

        

    }while(i<j);

    

    if(l<j)

    {

       pivotPinggir(l,j);

    }

    

    if(i<r)

    {

        pivotPinggir(i,r);

    }

    

}


/* Pivot Tengah */

void pivotTengah(int l, int r)

{

    int i,j,temp,pivot;

    i=l;

    j=r;

    

    //Membagi array menjadi dua bagian untuk penelusuran

    pivot=tabInt[(l+r)/2];

    

    do

    {

        //Looping pivot kiri jalan ke kanan

        while((tabInt[i]<pivot) && (i<=j))

        {

            i=i+1;

        }

        

        //Looping pivot kanan jalan ke kiri

        while((tabInt[j]>pivot) && (i<=j))

        {

            j=j-1;

        }

        

        //Swap

        if(i<j)

        {

           temp=tabInt[i];

           tabInt[i]=tabInt[j];

           tabInt[j]=temp;

           i=i+1;

           j=j-1;

        }

        

    }while(i<j);

    

    if((l<j) && (j<r))

    {

        pivotTengah(l,j);

    }

    

    if((i<r) && (i>l))

    {

        pivotTengah(i,r);

    }

    

}


void cetakArray(int n, int arr[])

{

    int i;

    for(i=0;i<n;i++)

    {

        printf(" %d", arr[i]);

    }

}


int main()

{

    //pivotPinggir(0,9);

    pivotTengah(0,5);

    cetakArray(6,tabInt);

    return 0;

}

Komentar

Postingan populer dari blog ini

Pentingnya Mendapatkan Sertifikasi di Bidang IT/Sebagai Programmer

Pengantar Java Swing Bagian 1

Pengenalan UML