Selection Sort

Selection sort merupakan salah satu algoritma untuk melakukan pengurutan (sorting) data baik secara minimum maupun maksimum. adapun gambaran Algoritma Selection sort minimum sebagai berikut:

Misalnya jumlah data ada 8, dimana nilainya sbb:

Data Awal: 33 56 15 40 82 21 5 62 

Kemudian dilakukan Pengurutan/Sorting dengan menggunakan Algoritma Selection Sort

Data  Menjadi Keterangan
33  56  15  40  82  21  5  62 5  56  15  40   82  21   33   62 Langkah ke-1 Tukarkan data ke-1 dengan data ke 7
56  15  40  82  21  33  62 15  56  40   82  21  33   62 Langkah ke-2 Tukarkan data ke-2 dengan data ke 3
5  15  56  40  82  21  33  62 5  15  21  40   82  56  33  62 Langkah ke-3 Tukarkan data ke-3 dengan data ke 6
5  15  21  40  82  56  33  62 5  15  21  33  82  56  40  62 Langkah ke-4 Tukarkan data ke-4 dengan data ke 7
5  15  21  33  82  56  40  62 5  15  21  33  40 56  82  62 Langkah ke-5 Tukarkan data ke-5 dengan data ke 7
5  15  21  33  40  56  82  62 5  15  21  33  40 56  82  62 Langkah ke-6 Tidak ada data yang ditukar
5  15  21  33  40  56  82  62  5  15  21  33  40  56  62 82 Langkah ke-7 Tukarkan data ke-7 dengan data ke 8
5  15  21  33  40  56  62 82 Data sudah terurut dari nilai yang terkecil sampai yang terbesar

 

Warna hijau menandakan posisi data dan warna merah menandakan nilai terkecil/minimum.

 

Adapun codingannya sebagai berikut:

/*
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package arrayinjava;

import java.util.Scanner;

/**
 *
 * @author Riki Afriansyah
 */
public class SelectionSort {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        int nilai;
        int[] A = new int[8];
        
        Scanner in = new Scanner(System.in); 
        
         // mengisi data ke array A
        for( int i = 0; i <A.length; i++ ){
            System.out.print("Input Nilai A[" + i + "]: ");
            A[i] = in.nextInt ();
        }
        System.out.println("Sorting menggunakan Selection Sort Minimum");
        System.out.print("Data Awal: ");
        for( int i = 0; i <A.length; i++ ){
            System.out.print(A[i]+" ");
        }
        System.out.println();
        System.out.println("----- Selection Sort Minimum ---------");
        Selectionsort(A);
    }
    
    
    public static void Selectionsort(int T[]){
        int min,temp;
        for(int i=0;i<T.length-1;i++){
            min=i;
            for (int j=i+1;j<=T.length-1;j++){
                if(T[j]<T[min]){
                  min=j; 
                }
            }
            temp=T[min];
            T[min]= T[i];
            T[i] = temp;
            
            if(i==min){
                System.out.println("Langkah ke-"+(i+1)+" Tidak ada data yang ditukar");
            }
            else {
                System.out.println("Langkah ke-"+(i+1)+" Tukarkan data ke-"+ (i+1)+" dengan data ke " +(min+1));
            }
               //Tampilkan nilai
                    for(int l=0;l<T.length;l++){
                        System.out.print(T[l]+" ");
                    }
              System.out.println();
        }
  
    }

    
}