Wednesday 15 December 2010

Selection Sort

Jika anda diminta untuk membuat algoritma sorting tersendiri, anda mungkin akan
menemukan sebuah algoritma yang mirip dengan selection sort. Layaknya insertion sort, algoritma ini 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 acak
melintang dari atas kebawah pada sebuah meja. Pilih nilai kartu yang paling rendah, kemudian tukarkan posisi kartu ini dengan kartu yang terletak paling atas. Lalu cari lagi kartu dengan nilai paling rendah diantara sisa kartu yang tersedia. Tukarkan kartu yang baru saja terpilih dengan kartu pada posisi kedua.

Perhatikan contoh dibawah ini:


Algoritmanya Sbb:

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]);
           }
}

No comments:

Post a Comment