Selection
sorting adalah mencari
elemen yang tepat untuk diletakkan di posisi yang telah diketahui, dan meletakkannya
di posisi tersebut setelah data tersebut ditemukan. Selection Sort
membandingkan elemen yang sekarang dengan elemen yang berikutnya sampai dengan
elemen yang terakhir. Jika ditemukan elemen lain yang lebih kecil dari elemen
sekarang maka dicatat posisinya dan kemudian ditukar.
Selection sort
tidak terlalu sulit untuk menganalisa dibandungkan dengan jenis sorting yang
lainnya karena tidak bergantung pada data yang diperoleh oleh array. Pemilihan
elemen terendah memerlukan pemindaian seluruh elemen n (memerlukan perbandingan
n − 1) dan kemudian menukar menjadi posisi pertama. Kemudian mencari elemen
terendah berikutnya dengan memindai seluruh elemen n – 1 yang tersisa dan
seterusnya, untuk perbandingan (n − 1) + (n − 2) + ... + 2 + 1 = n(n − 1) / 2 ∈
Θ(n2). Masing-masing pemindaian membutuhkan pergantuan untuk elemen n − 1.
Bagaimana untuk
mengurutkan 5,1,12,-5,16,2,12,14 ini menggunakan selection sorting, gambarannya
seperti di bawah ini :
maka kita dapat membuat coding selection sort seperti dibawah ini :
// Abdul Hamid //
public class UASSelectionSort {
public static int[] doSelectionSort(int[] arr){
for (int i = 0; i < arr.length - 1; i++)
{
int index = i;
for (int j = i + 1; j < arr.length; j++)
if (arr[j] < arr[index])
index = j;
int smallerNumber = arr[index];
arr[index] = arr[i];
arr[i] = smallerNumber;
}
return arr;
}
public static void main(String a[]){
int[] arr1 = {5,1,12,-5,16,2,12,14 };
int[] arr2 = doSelectionSort(arr1);
for(int i:arr2){
System.out.print(i);
System.out.print(", ");
}
}
}
Output :
-5, 1, 2, 5, 12, 12, 14, 16,
Berikut screen shoot setelah di run pada eclipse