Advertisement
undersetta

Quick Sort

May 21st, 2024 (edited)
685
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.88 KB | Source Code | 0 0
  1. package Sorting;
  2.  
  3. import java.util.Arrays;
  4.  
  5. public class QuickSort {
  6.     // Fungsi untuk menukar dua elemen dalam array
  7.     public static void swap(int[] array, int i, int j) {
  8.         int temp = array[i];
  9.         array[i] = array[j];
  10.         array[j] = temp;
  11.     }
  12.  
  13.     // Fungsi untuk mempartisi array dan mengembalikan indeks pivot
  14.     public static int partition(int[] array, int low, int high) {
  15.         int pivot = array[high];
  16.         int i = (low - 1); // Indeks dari elemen yang lebih kecil
  17.  
  18.         for (int j = low; j < high; j++) {
  19.             // Jika elemen saat ini lebih kecil atau sama dengan pivot
  20.             if (array[j] >= pivot) {
  21.                 i++;
  22.                 swap(array, i, j);
  23.             }
  24.         }
  25.  
  26.         // Tukar array[i+1] dengan array[high] (atau pivot)
  27.         swap(array, i + 1, high);
  28.  
  29.         return i + 1;
  30.     }
  31.  
  32.     // Fungsi utama untuk mengurutkan array menggunakan quick sort
  33.     public static void quickSort(int[] array, int low, int high) {
  34.         if (low < high) {
  35.             // Pi adalah indeks pivot, array[pi] sudah berada di tempat yang benar
  36.             int pi = partition(array, low, high);
  37.  
  38.             // Urutkan elemen secara rekursif sebelum dan setelah partisi
  39.             quickSort(array, low, pi - 1);
  40.             quickSort(array, pi + 1, high);
  41.         }
  42.     }
  43.    
  44.     public static void main(String[] args) {
  45.         int[] arr = {3, 6, 0, 2, 8, 10, 4, 3, 5, 11, 1};
  46.         int[] arr_sort = arr.clone();
  47.         int n = arr.length - 1;
  48.        
  49.         // Tampilkan hasil sebelum diurutkan
  50.         System.out.println("Sebelum diurutkan = " +
  51.                            Arrays.toString(arr));
  52.        
  53.         // Tampilkan hasil setelah diurutkan
  54.         quickSort(arr_sort, 0, n);
  55.         System.out.println("Setelah diurutkan = " +
  56.                            Arrays.toString(arr_sort));
  57.     }
  58. }
  59.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement