Quicksort Pada Java

Quicksort mengurutkan data dengan pendekatan divide-and-conquer,yaitu membagi masalah semula menjadi beberapa submasalah sejenis yang lebih kecil dan menyelesaikannya. Quicksort melakukan pengurutan dalam putaran secara rekrusif. Pengulangan secara rekursi dilakukan jika jumlah data yang akan diurutkan lebih dari satu buah. Untuk lebih jelasnya mengenai proses pengurutan dengan algoritma Quicksort silahkan saksikan video berikut :

Fungsi Quicksort

Berikut ini merupakan fungsi dari Quicksort :

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);
    }

Contoh Kode Quicksort

Berikut ini contoh kode program lengkap dari algoritma Quicksort :

public class QuickSort {
    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[]={24,17,18,15,22,26, 13, 21, 16, 28};
        int i,n=10;
        
            for(i=0;i<n;i++){
                System.out.print(tabInt[i]+ " ");
           }
            System.out.print("\n");
        quickSort(tabInt,0,n-1);
        
        for(i=0;i<n;i++){
            System.out.print(tabInt[i]+" ");
        }

    }

}

Demikian penjelasan mengenai algoritma Quicksort, silahkan melakukan eksplorasi lebih lanjut