ALGORITMA QUICK SORT


Quick Sort merupakan suatu algoritma pengurutan data yang menggunakan teknik pemecahan data menjadi partisi - partisi, sehingga metode ini disebut juga dengan nama partition exchange sort. Untuk memulai irterasi pengurutan, pertama-tama sebuah elemen dipilih dari data,  kemudian elemen-elemen data akan diurutkan diatur sedemikian rupa, sehingga nilai variabel Sementara berada di suatu posisi ke I yang  memenuhi kondisi sebagai berikut :
1.    Semua elemen di posisi ke 1 sampai dengan ke I-1 adalah lebih kecil atau sama dengan Sementara.
2.    Semua elemen di posisi ke I+1 sampai dengan ke N adalah lebih besar atau sama dengan Sementara.
Contoh algoritma quick sort dalam bentuk java netbean :

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package org.alpro2.praktikum;

/**
 *
 * @author WIN 8.1 Core
 */
public class QuickSort {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int i ;
        int array [] = {12, 9, 4, 99, 120, 1, 3, 10};
        System.out.println("values before the sort:\n");
        for (i = 0; i < array.length; i++ ){
            System.out.print(array [i] + " ");
        }
        System.out.println();
        quicksort(array, 0, array.length-1 );
        System.out.println("values before the sort:\n");
        for (i = 0; i< array.length; i++ ){
            System.out.print(array[i] + " ");
        }
        System.out.println();
        System.out.println("pause");
          // TODO code application logic here
    }
    public static int partition(int arr[], int left,int right){
        int i = left, j = right;
        int tmp;
        int pivot = arr [(left + right) / 2 ];
        while (i <= j){
            while (arr[i]<pivot){
                i++;
            }
            while (arr[j] > pivot){
                j--; 
            }
            if (i <= j){
                tmp = arr [i];
                arr [i] = arr [j];
                arr [j] = tmp;
                i++;
                j--;
            }
        }
        return i;
    
    }
    public static void quicksort (int arr [],int left, int right){
        int index = partition (arr, left, right);
        if (left < index - 1 ){
            quicksort(arr, left, index - 1);
        }
            if (index < right){
                quicksort (arr, index, right);
            
            }
    
    }
    
 }
Apabila di run akan seperti ini hasilnya :
run:
values before the sort:

12 9 4 99 120 1 3 10
values before the sort:

1 3 4 9 10 12 99 120
pause
BUILD SUCCESSFUL (total time: 1 second)

Subscribe to receive free email updates:

2 Responses to "ALGORITMA QUICK SORT"