Jika anda diminta untuk membuat algoritma sorting tersendiri, anda mungkin akan menemukan sebuah algoritma yang mirip dengan selection sort. Layaknya insertion sort, algoritma ini sangat rapat dan mudah untuk diimplementasikan.Mari kita kembali menelusuri bagaimana algoritma ini berfungsi terhadap satu paket kartu. Asumsikan bahwa kartu tersebut akan diurutkan secara ascending. Pada awalnya, kartu tersebut akan disusun secara linier pada sebuah meja dari kiri ke kanan, dan dari atas ke bawah. Pilih nilai kartu yang paling rendah, kemudian tukarkan posisi kartu ini dengan kartu yang terletak pada pojok kiri atas meja. Lalu cari kartu dengan nilai paling rendah diantara sisa kartu yang tersedia. Tukarkan kartu yang baru saja terpilih dengan kartu pada posisi kedua.
Ulangi langkah – langkah tersebut hingga posisi kedua sebelum posisi terakhir dibandingkan dan dapat digeser dengan kartu yang bernilai lebih rendah. Ide utama dari algoritma selection sort adalah memilih elemen dengan nilai paling rendah dan menukar elemen yang terpilih dengan elemen ke-i. Nilai dari i dimulai dari 1 ke n, dimana n adalah jumlah total elemen dikurangi 1.
Ulangi langkah – langkah tersebut hingga posisi kedua sebelum posisi terakhir dibandingkan dan dapat digeser dengan kartu yang bernilai lebih rendah. Ide utama dari algoritma selection sort adalah memilih elemen dengan nilai paling rendah dan menukar elemen yang terpilih dengan elemen ke-i. Nilai dari i dimulai dari 1 ke n, dimana n adalah jumlah total elemen dikurangi 1.
Algoritma Selection Sort
void selectionSort(Object array[], int startIdx, int endIdx) {
int min;
for (int i = startIdx; i < endIdx; i++) {
min = i;
for (int j = i + 1; j < endIdx; j++) {
if (((Comparable)array[min]).compareTo(array[j])>0) {
min = j;
}
}
swap(array[min], array[i]);
}
}
Contoh
Dari Algoritma diatas yaitu algoritma tentang Selection Sort, dapat di implementasikan terutama pada algoritmanyajadi seperti dibawah ini :
public class selectionsort_2 {
protected static void sort(int[]arr){
for (int i = 0; i < arr.length; i++) {
int min=i;
for(int j=0;j
if(arr[j]
min=j;
//proses Tukar deret
int temp=arr[min];
arr[min]=arr[i];
arr[i]=temp;
}
}
}
Jika anda menjalankan algoritma diatas besar kemungkinan dan pasti tidak dapat dijalankan karena dia butuh method main yang gunanya untuk menjalankan algoritma Selection Sort diatas kalau tidak percaya coba deh langsung di running ….
Nah nerikut ini adalah coding program nya yaitu method main nya.
public static void main(String[] args) {
int[]data={3,4,5,6,7,8,9,1};
System.out.println("=================");
System.out.println("Sebelum Terurut...");
muncul(data);
selectionsort_2.sort(data);
System.out.println("Sesudah Terurut...");
System.out.println("=================");
muncul(data);
}
static void muncul(int[]arr){
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
}
}
Dimana peletakannya yaitu di bawah algoritma, dan mendapatkan hasil sebelum dan sesudah dilakukan penggurutan
oke mungkin cukup sekian dulu ya tetang Sorting dimana penggurutan Selection Sort Mudah bukan.
0 komentar:
Posting Komentar