Anda di halaman 1dari 4

Selection Sort

Selection Sort merupakan salah satu algoritma pengurutan yang sederhana. Ide dasarnya adalah melakukan beberapa kali pass untuk melakukan penyeleksian elemen struktur data. Untuk sorting ascending (menaik), elemen yang paling kecil di antara elemen-elemen yang belum urut, disimpan indeksnya, kemudian dilakukan pertukaran nilai elemen dengan indeks yang disimpan tersebut dengan elemen yang paling depan yang belum urut. Sebaliknya, untuk sorting descending (menurun), elemen yang paling besar yang disimpan indeksnya kemudian ditukar. Selection Sort diakui karena kesederhanaan algoritmanya dan performanya lebih bagus daripada algoritma lain yang lebih rumit dalam situasi tertentu. Algoritma ini bekerja sebagai berikut:

1. Mencari nilai minimum (jika ascending) atau maksimum (jika descending) dalam sebuah list 2. Menukarkan nilai ini dengan elemen pertama list 3. Mengulangi langkah di atas untuk sisa list dengan dimulai pada posisi kedua Source code selection sort
package daa_lintang2; /** * * @author Lintang */ public class SelectionSort { protected static void sort(int[]arr){ for (int i = 0; i < arr.length; i++) { int min=i; for(int j=0;j<arr.length;j++){ if(arr[j]<arr[min]) min=j; //proses pertukaran int temp=arr[min]; arr[min]=arr[i]; arr[i]=temp; } } } }

Class demo selection sort sebagai kelas utama


package daa_lintang2; /** * * @author Lintang */

public class selectionSort_ { int[] angka={5, 1, 12, -5, 16, 2, 17, 14}; public selectionSort_() { tampilkanAngka(); urutkanAngka(); tampilkanAngka(); } void tampilkanAngka() { System.out.println("\n--------------------------------"); for (int i=0;i<angka.length;i++) { System.out.print(angka[i]+" "); } } void urutkanAngka() { int tampung; for (int i=0;i<angka.length-1;i++) { int minindek=i; for(int j=i+1;j<angka.length;j++) { if(angka[j]<angka[minindek]) minindek=j; if(minindek!=i) { tampung=angka[i]; angka[i]=angka[minindek]; angka[minindek]=tampung; } } //tampilkanAngka(); } } public static void main(String[] aksi) { selectionSort_ urut = new selectionSort_(); } }

Penjelasan dari source code di atas :


public class SelectionSort { protected static void sort(int[]arr){ for (int i = 0; i < arr.length; i++) { int min=i; for(int j=0;j<arr.length;j++){ if(arr[j]<arr[min]) min=j;

=== Algoritma ====


//proses pertukaran int temp=arr[min]; arr[min]=arr[i]; arr[i]=temp;

====== Proses pertukaran apabila data dari kanan ke kiri atau sebaliknya,jika datanya sama maka data tidak terjadi penukaran ====
int[] angka={5, 1, 12, -5, 16, 2, 17, 14};

=== data yang akan di urutkan ======


void urutkanAngka() { int tampung; for (int i=0;i<angka.length-1;i++) { int minindek=i; for(int j=i+1;j<angka.length;j++) { if(angka[j]<angka[minindek]) minindek=j; if(minindek!=i) { tampung=angka[i]; angka[i]=angka[minindek]; angka[minindek]=tampung; } }

==== proses pengurutan data =====


public static void main(String[] aksi) { selectionSort_ urut = new selectionSort_(); }

==== hasil keluaran (oudput) ====

Anda mungkin juga menyukai