fangga

Sorting

May 23rd, 2023
638
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.31 KB | None | 0 0
  1. package Code.Sorting;
  2.  
  3. public class Sorting {
  4.  
  5.     void bubbleSort(int[] data) {
  6.         for (int i = 0; i < data.length; i++) {
  7.             for (int j = 0; j < data.length; j++) {
  8.                 if (data[j] > data[j + 1]) {
  9.                     int tmp = data[j];
  10.                     data[j] = data[j + 1];
  11.                     data[j + 1] = tmp;
  12.                 }
  13.             }
  14.         }
  15.     }
  16.  
  17.     void selectionSort(int[] arr) {
  18.         int n = arr.length;
  19.  
  20.         // Looping untuk iterasi dari elemen pertama hingga elemen kedua terakhir
  21.         for (int i = 0; i < n - 1; i++) {
  22.             int minIndex = i; // Menyimpan indeks elemen minimum
  23.  
  24.             // Looping untuk mencari elemen minimum dalam bagian belum terurut
  25.             for (int j = i + 1; j < n; j++) {
  26.                 // Membandingkan elemen saat ini dengan elemen minimum yang ada
  27.                 if (arr[j] < arr[minIndex]) {
  28.                     // Jika ditemukan elemen yang lebih kecil, mengupdate indeks elemen minimum
  29.                     minIndex = j;
  30.                 }
  31.             }
  32.  
  33.             // Swap elemen minimum dengan elemen pertama dalam bagian belum terurut
  34.             int temp = arr[i];
  35.             arr[i] = arr[minIndex];
  36.             arr[minIndex] = temp;
  37.         }
  38.     }
  39.  
  40.     void insertionSort(int[] array) {
  41.         int n = array.length;
  42.  
  43.         for (int i = 1; i < n; i++) {
  44.             int currentElement = array[i];
  45.             int j = i - 1;
  46.  
  47.             /*
  48.              * Memindahkan elemen-elemen yang lebih besar dari currentElement ke posisi
  49.              * setelahnya
  50.              */
  51.             while (j >= 0 && array[j] > currentElement) {
  52.                 array[j + 1] = array[j];
  53.                 j--;
  54.             }
  55.  
  56.             // Menempatkan currentElement pada posisi yang tepat dalam bagian terurut
  57.             array[j + 1] = currentElement;
  58.         }
  59.     }
  60.  
  61.     public static void quickSort(int[] arr, int low, int high) {
  62.         if (low < high) {
  63.             // Pilih pivot dan lakukan partisi array
  64.             int pivot = partition(arr, low, high);
  65.  
  66.             // Panggil quickSort rekursif pada dua bagian array yang belum terurut
  67.             quickSort(arr, low, pivot - 1); // Bagian kiri dari pivot
  68.             quickSort(arr, pivot + 1, high); // Bagian kanan dari pivot
  69.         }
  70.     }
  71.  
  72.     private static int partition(int[] arr, int low, int high) {
  73.         // Ambil elemen pivot (di sini, elemen terakhir)
  74.         int pivot = arr[high];
  75.  
  76.         // Inisialisasi indeks i dengan nilai kurang dari low
  77.         int i = low - 1;
  78.  
  79.         // Loop dari low hingga high - 1
  80.         for (int j = low; j < high; j++) {
  81.             // Jika elemen saat ini lebih kecil dari pivot, lakukan swap dan naikkan nilai i
  82.             if (arr[j] < pivot) {
  83.                 i++;
  84.                 swap(arr, i, j);
  85.             }
  86.         }
  87.  
  88.         // Letakkan pivot pada posisi yang tepat dengan menukar elemen i + 1 dengan
  89.         // pivot
  90.         swap(arr, i + 1, high);
  91.  
  92.         // Kembalikan posisi pivot
  93.         return i + 1;
  94.     }
  95.  
  96.     private static void swap(int[] arr, int i, int j) {
  97.         // Fungsi untuk menukar dua elemen dalam array
  98.         int temp = arr[i];
  99.         arr[i] = arr[j];
  100.         arr[j] = temp;
  101.     }
  102.  
  103.     public static void main(String[] args) {
  104.  
  105.     }
  106. }
Advertisement
Add Comment
Please, Sign In to add comment