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);
}
}
}
* 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)
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)
Hallo
BalasHapusBagaimana kalau ada kasus, contoh pengurutan nilai mahasiswa
BalasHapus