Apa Itu Algoritma Counting Sort dan Cara Kerjanya

Mengenal Algoritma Sorting!

Misal: Buatlah coding pengurutan data dari terkecil hingga terbesar dengan menggunakan Algoritma Counting-sort!

Sebelum itu kalian tau gasih apa itu Algoritma Counting-sort? sini-sini aku kasih tau yaa..

Counting Sort adalah algoritma pengurutan non-komparatif dalam ilmu komputer  yang bekerja dengan menghitung jumlah elemen-elemen yang memiliki nilai tertentu dalam array, menambahkan (counting array) untuk menyimpan jumlah kemunculan setiap nilai. Counting Sort menggunakan pendekatan perhitungan kemunculan nilai.

Yuk simak coding dan cara kerjanya!

Misal urutkan data nilai dari a1 sampai a6.

Code Program:

public class counting_sort {
    // Metode countingSort untuk mengurutkan array menggunakan algoritma Counting Sort
    public static void countingSort(int[] array) {
        // Mencari nilai maksimum dalam array
        int max = findMax(array);

        // Membuat array counting untuk menghitung frekuensi setiap nilai
        int[] counting = new int[max + 1];

        // Menghitung frekuensi setiap nilai dalam array
        for (int value : array) {
            counting[value]++;
        }

       // Menempatkan nilai kembali ke array sesuai dengan frekuensinya
       int index = 0;
       for (int i = 0; i <= max; i++){
           while (counting[i] > 0){
           array[index] = i;
           index++;
           counting[i]--;
           }
       }
    }
      
    // Metode untuk menemukan nilai maksimum dalam array
    public static int findMax(int[] array) {
        int max = array[0];
        for (int value : array){
            if (value > max){
                max = value;
            }
        }
        return max;
    }
    
    public static void main(String[] args){
        // membuat enam variabel a1 hingga a6 dengan data angka
        int a1 = 21;
        int a2 = 22;
        int a3 = 23;
        int a4 = 24;
        int a5 = 25;
        int a6 = 26;
        
        // Menempatkan nilai variabel dalam array untuk mempermudah pengurutan
        int[] arr = {a1, a2, a3, a4, a5, a6};
        int n = arr.length;
        System.out.println("Array sebelum di urutkan:");
        for (int i = 0; i < n; ++i){
            System.out.print(arr[i] + " ");
        }
 
        // Memanggil metode countingShort untuk mengurutkan array
        countingSort(arr);
    
        System.out.println();
    
        // Menampilkan niali variabel setelah di urutkan
        System.out.println("Array sesudah di urutkan");
        for (int i : arr){
            System.out.print(i + " ");
        }
    }
}

Hasil pengurutan setelah di RUN_

run:
Array sebelum di urutkan:
21 22 23 24 25 26 
Array sesudah di urutkan
21 22 23 24 25 26 BUILD SUCCESSFUL (total time: 0 seconds)

Semoga bermanfaat semangat..

Komentar