Pultiopok.com – Quick Sort Merupakan metode tercepat dalam proses pengurutan data dengan menggunakan prinsip rekusif. Metode ini menggunakan strategi “Pecah Belah” dengan mekanisme Berikut.
Misalkan kita mempunyai Array Nilai [K..l]. Array dipartisi menjadi dua bagian array kini Nilai [k..m] dan Array kanan Nilai [m+1…l]. Dasar mempartisi array menjadi dua adalah dengan mengambil elemen pertama sebagai elemen pivot. Letakan semua elemen Array yang lebih kecil dari pivot ke sebelah kiri pivot dan semua elemen Array yang lebih Besar dari pivot ke sebelah kanan pivot. Elemen Sebelah kanan pivot. Sedangkan Elemen-Elemen Array nilai [m+2…l] adalah semua elemen yang lebih besar dari pivot. lakukan hal yang sama seperti di atas terhadap array Nilai[k…m] dan nilai [m+1…l] sehingga tidak dapat dipartisi lagi.
BACA JUGA: Cara membuat Program Bubble Sort pengurutan Besar Ke kecil menggunakan bahasa C++
Berikut Program Pengurutan dengan Cara Quick Sort
Pengurutan Secara Menaik
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
void Cetak(int data[],int n)
{
int i;
for(i=0; i<n; i++)
cout<<setw(3)<<data[i];
cout<<“n”;
}
int Partisi(int data[], int p, int r)
{
int x, i, j, temp;
x= data[p];
i=p;
while(1)
{
while(data[j]>x)
j–;
while(data[i]<x)
i++;
if(i<j)
{
temp = data [i];
data[i] = data [j];
data[j] = temp;
}
else
return j;
}
}
void Quick_Sort(int data[], int p, int r)
{
int q;
if(p<r)
{
q=Partisi(data,p,r+1);
Quick_Sort(data, p, q);
Quick_Sort(data, q+1, r);
}
}
main()
{
int Nilai[20];
int i, N;
cout<<“Masukan Banyak Bilangan : “;
cin>>N;
for(i=0; i<N; i++)
{
cout<<“Elemen ke -“<<i<<” : “;
cin>>Nilai[i];
}
cout<<“n Data Sebelum di urut : “;
Cetak(Nilai,N);
cout<<endl;
Quick_Sort(Nilai, 0, N-1);
cout<<“n Data Setelah di urut : “;
Cetak(Nilai,N);
getch();
}