Вы находитесь на странице: 1из 3

Contoh 1 Quicksort

public class Quicksort {


public static void main(String[] args) {
int i;
int[] data = {25, 57, 48, 37, 12, 92, 80, 33};
quickSort(data, 0, data.length - 1);

System.out.println("Hasil pengurutan data:");


tampilkanLarik(data, data.length);
}

public static void tampilkanLarik(int[] data, int n) {


for (int i = 0; i < n; i++)
System.out.printf("%d ", data[i]);
System.out.println();
}

public static int partisi(int[] data, int p, int r) {


int x, i, j, tmp;

x = data[p];
i = p;
j = r;

while (true) {
while (data[j] > x)
j--;

while (data[i] < x)


i++;

if (i < j) {
// Tukarkan data
tmp = data[i];
data[i] = data[j];
data[j] = tmp;
}
else
return j;
}
}

public static void quickSort(int[] data, int p, int r) {


int q;

if (p < r) {
q = partisi(data, p, r);
quickSort(data, p, q);
quickSort(data, q+1, r);
}
}

Contoh 2 Quicksort
public class Quicksort2 {
static void quickSort (int a[], int lo, int hi){
// lo adalah index bawah, hi adalah index atas
// dari bagian array yang akan di urutkan
int i=lo, j=hi, h;
int pivot=a[lo];

// pembagian
do{
while (a[i]<pivot) i++;
while (a[j]>pivot) j--;
if (i<=j)
{
h=a[i]; a[i]=a[j]; a[j]=h;//tukar
i++; j--;
}
} while (i<=j);

// pengurutan
if (lo<j) quickSort(a, lo, j);
if (i<hi) quickSort(a, i, hi);
}

public static void main(String[] args) {


int tabInt[]={9,4,2,7,10,1,5};
int i,n=7;
System.out.print("data sebelum di urutkan\n");

for(i=0;i<n;i++){
System.out.print(tabInt[i]+ " ,");
}
System.out.print("\n");
quickSort(tabInt,0,n-1);
System.out.print("\nsetelah di urutkan dengan quick sort\n");

for(i=0;i<n;i++){
System.out.print(tabInt[i]+" , ");

}
}

Contoh heapsort
public class heapsort2 {
public static void main(String args[]){

int n[]={54,73,9,25,61,33,80};
System.out.print("Angka sebelum disorting : ");
for(int i=0;i<n.length;i++)
{
System.out.print(n[i]+" ");
}
System.out.println();

for(int i=n.length; i>1; i--)


{
initializeheapSort(n, i-1);
}
System.out.print("Angka setelah disorting : ");
for(int i=0;i<n.length;i++)
{
System.out.print(n[i]+" ");
}
}
public static void initializeheapSort(int n[], int sementara)
{
int i, o,kecila, kecilb, kecilc, root, temp;
root=(sementara-1)/2;
for(o=root;o>=0;o--)
{
for(i=root;i>=0;i--)
{
kecila=(2*i)+1;
kecilb=(2*i)+2;
if((kecila<=sementara) && (kecilb <= sementara))
{
if(n[kecilb]>=n[kecila])
kecilc=kecilb;
else
kecilc=kecila;
}
else
{
if(kecilb>sementara)
kecilc=kecila;
else
kecilc=kecilb;
}
if(n[i]<n[kecilc])
{
temp=n[i];
n[i]=n[kecilc];
n[kecilc]=temp;
}
}
}
temp=n[0];
n[0]=n[sementara];
n[sementara] = temp;
return;
}
}

Вам также может понравиться