Selection Sort di Java: Contoh Langkah demi Langkah & Kode Lengkap
Apa Itu Selection Sort?
Selection Sort adalah algoritma perbandingan sederhana yang secara berulang memilih elemen terkecil yang tersisa dan menukarnya ke tempatnya. Meskipun tidak tercepat untuk kumpulan data besar, kesederhanaannya menjadikannya ideal untuk tujuan edukasi dan array kecil.
Bagaimana Algoritma Kerja
- Mulai dari awal array.
- Cari elemen terkecil dalam bagian yang belum diurutkan.
- Tukar dengan elemen di posisi saat ini.
- Pindahkan batas antara bagian yang diurutkan dan belum diurutkan satu langkah ke kanan.
- Ulangi hingga seluruh array terurut.
Implementasi Java
Berikut adalah program Java ringkas yang menunjukkan algoritma selection sort pada array integer. Kode mencetak array sebelum dan setelah pengurutan, serta langkah-langkah perantara untuk mengilustrasikan setiap lusinan.
package com.guru99; public class SelectionSortAlgo { public static void main(String[] args) { int[] myArray = {860, 8, 200, 9}; System.out.println("------Before Selection Sort-----"); printArray(myArray); selection(myArray); // Sort the array System.out.println("-----After Selection Sort-----"); printArray(myArray); } public static void selection(int[] array) { for (int i = 0; i < array.length - 1; i++) { System.out.println("Sort Pass Number " + (i + 1)); int index = i; for (int j = i + 1; j < array.length; j++) { System.out.println("Comparing " + array[index] + " and " + array[j]); if (array[j] < array[index]) { System.out.println(array[index] + " is greater than " + array[j]); index = j; } } int smallerNumber = array[index]; array[index] = array[i]; array[i] = smallerNumber; System.out.println("Swapping Elements: New Array After Swap"); printArray(array); } } private static void printArray(int[] array) { for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } System.out.println(); } } Contoh Output
------Before Selection Sort----- 860 8 200 9 Sort Pass Number 1 Comparing 860 and 8 860 is greater than 8 Comparing 8 and 200 Comparing 8 and 9 Swapping Elements: New Array After Swap 8 860 200 9 Sort Pass Number 2 Comparing 860 and 200 860 is greater than 200 Comparing 200 and 9 200 is greater than 9 Swapping Elements: New Array After Swap 8 9 200 860 Sort Pass Number 3 Comparing 200 and 860 Swapping Elements: New Array After Swap 8 9 200 860 -----After Selection Sort----- 8 9 200 860
Catatan Performa
Selection Sort melakukan O(n²) perbandingan terlepas dari input dan menggunakan paling banyak memori tambahan O(1). Perilaku deterministiknya membuatnya cocok untuk lingkungan di mana memori terbatas.