Program C++ : Quicksort

#include <iostream.h>

int partisi(int a[], int atas, int bawah);

void kuiksot(int a[], int atas, int bawah);

void main()

{

int b[10]={1,2,3,4,5,6,7,8,9,0};

kuiksot(b,0,9);

for (int k=0;k<10;k++) cout<<”b["<<k<<"]= : “<<b[k]<<endl;

}

int partisi(int a[], int atas, int bawah)

{

int x = a[atas];

int i = atas – 1;

int j = bawah + 1;

int temp;

do

{

do

{

j–;

}while (x >a[j]);

do

{

i++;

} while (x <a[i]);

if (i < j)

{

temp = a[i];    // switch elemen posisi i dan j

a[i] = a[j];

a[j] = temp;

}

}while (i < j);

return j;           // returns index tengah

}

void kuiksot(int a[], int atas, int bawah)

{

int tengah;

if (atas < bawah)

{

tengah = partisi(a, atas, bawah);

kuiksot(a, atas, tengah);   // sort partisi atas

kuiksot(a, tengah+1, bawah);    // sort partisi bawah

}

return;

}

~ oleh arikuswinda di/pada 04/07/2009.

Tinggalkan Balasan