Pengurutan Seleksi (Selection Sort) pada Java

Pada tulisan sebelumnya telah dibahas mengenai metode pengurutan Sisip atau Insertion Sort, pada tulisan akan dibahas mengenai metode pengurutan Seleksi. Metode pengurutan Seleksi atau Selection Sort  ini mencari nilai terkecil atau terbesar dari data yang ada, kemudian ditempatkan pada index terdepan, lalu mencari lagi nilai terkecil atau terbesar kedua dari data kurang 1, setelah ketemu elemen kedua ditukar dengan nilai minimum, begitu seterusnya.

Proses Pengurutan Seleksi

Misalkan data : 89 32 43 23 54 64 12 53 63 50, maka langkah-langkah pengurutannya adalah sebagai berikut:

  1. Cari data terkecil pada baris bilangan untuk ditempatkan pada posisi ke-1 12 merupakan data terkecil. 89 32 43 23 54 64 12 53 63 50.
  2. Tukar posisi dengan bilangan yang berada di posisi ke-1 12 32 43 23 54 64 89 53 63 50.
  3. Cari data terkecil dari posisi bilangan ke 2 sampai ke-10 pada baris bilangan untuk ditempatkan pada posisi ke-2.
  4. Maka diketahui 23 adalah bilangan terkecil ke-dua dari baris 12 32 43 23 54 64 89 53 63 50.
  5. Tukar posisi dengan bilangan yang berada di posisi ke-2 12 23 43 32 54 64 89 53 63 50.
  6. Proses terus berulang sampai posisi terakhir.

Algoritma Selection Sort

Berikut ini adalah algoritma dari Selection Sort :

int i,j;
for (i = 0; i < N; i++) {
  int min = arr[i];
  int pos = i;
  for (j = i; j < N; j++) {
       /* Cari nilai yang terkecil */
       if (arr[j] < min) {
       min = arr[j];
       pos = j;
    }
  }
  /* Tukar nilai terkecil ke arr[i] jika pos tdk sama i */
  if(i!=pos) {
     int temp = arr[i];
     arr[i] = arr[pos];
     arr[pos] = temp;
   }
}

Terurut Menaik atau Terurut Menurun

Terurut Menaik artinya data terurut dari kecil ke besar maka pseudo kode .

 if (arr[j] < min)

Terurut Menaik artinya data terurut dari besar ke kecil maka pseudo kode .

 if (arr[j] > min)

Contoh kode lengkap pengurutan data dari  kecil ke besar dengan metode Selection Sort sebagai berikut :

public class SelectionSort {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] tabInt = {51,23,17,32,43,88};
        int i,j,N;
        N=6;
        
        for (i = 0; i < N; i++) {
              int min = tabInt[i];
              int pos = i;
              for (j = i; j < N; j++) {
                   /* Cari nilai yang terkecil */
                   if (tabInt[j] < min) {
                   min = tabInt[j];
                   pos = j;
                }
              }
              /* Tukar nilai terkecil ke arr[i] jika pos tdk sama i */
              if(i!=pos) {
                 int temp = tabInt[i];
                 tabInt[i] = tabInt[pos];
                 tabInt[pos] = temp;
               }
            }
        for(i=0; i<6; i++){ 
            System.out.print(tabInt[i]+" ");
        }
    }
}

Demikian penjelasan mengenai algoritma Selection Sort, silahkan eksplorasi lebih lanjut

 

Block AdBlock - Powered by Admiral