4.10.10

Metoda Pengurutan Quick Sort Dengan Bahasa C

Metoda Pengurutan Quick Sort Dengan Bahasa C

Roni akan membangun program yang akan melakukan proses pengurutan dengan metoda Quick Sort. Program tersebut diberikan pada listing 1.

#include
#define N 20

int quick(int bawah, int atas);
int i, j, A[N];

main()
{
int jml;
clrscr();
printf("MENGURUTKAN DATA DENGAN QUICK SORT \n\n");
printf("Masukkan jumlah bilangan (maks 20) : ");
scanf("%d",&jml);

// input data

for (i=0;i{
printf("Bilangan ke %d : ",i+1);
scanf("%d",&A[i]);
}

// pengurutan data

quick(0,jml-1);

// menampilkan hasil

printf("Data yang telah terurut : \n");
for (i=0;i{
printf("%d\n",A[i]);
}
}

// fungsi quick

int quick(int bawah, int atas)
{
int pivot, temp;

// pengulangan dilakukan
// selama bawah < atas

if (bawah{
i = bawah;
j = atas;
pivot = A[j];
do
{
while (i {
i++;
}
while (j>i && A[j]>=pivot)
{
j--;
}
if (i {
temp = A[i];
A[i] = A[j];
A[j] = temp;
}
}
while (i temp = A[j];
A[j] = A[atas];
A[atas] = temp;
if (j-bawah {
quick(bawah,j-1);
quick(i+1,atas);
}
else
{
quick(i+1,atas);
quick(bawah,j-1);
}
}
}


Hasil apabila program tersebut dijalankan adalah sebagai berikut:

MENGURUTKAN DATA DENGAN QUICK SORT

Masukkan jumlah bilangan (maks 20) : 7
Bilangan ke 1 : 5
Bilangan ke 2 : 1
Bilangan ke 3 : 3
Bilangan ke 4 : 10
Bilangan ke 5 : 8
Bilangan ke 6 : 6
Bilangan ke 7 : 7

Data yang telah terurut :
1
3
5
6
7
8
10

Bandingkan dengan gambar 7.
Perhatikan dengan seksama program tersebut. Anda akan melihat bahwa di dalam fungsi quick() dipanggil lagi fungsi quick() itu sendiri. Tentunya Anda masih ingat bukan bahwa hal tersebut merupakan fungsi rekursif.
Sebagai latihan, Anda bisa membuat program yang sama namun untuk pengurutan descending atau menurun. Selamat mencoba.

Tidak ada komentar:

Pengikut


Entri Populer