Struktur Data dan Urutan Pemilihan Algoritma

Sortir pilihan adalah algoritme pengurutan sederhana. Algoritma pengurutan ini adalah algoritma berbasis perbandingan di tempat di mana daftarnya dibagi menjadi dua bagian, bagian yang diurutkan di ujung kiri dan bagian yang tidak diurutkan di ujung kanan. Awalnya, bagian yang diurutkan kosong dan bagian yang tidak diurutkan adalah seluruh daftar.

Elemen terkecil dipilih dari array yang tidak diurutkan dan ditukar dengan elemen paling kiri, dan elemen itu menjadi bagian dari array yang diurutkan. Proses ini terus memindahkan batas array yang tidak disortir dengan satu elemen ke kanan.

Algoritme ini tidak cocok untuk kumpulan data besar karena kompleksitas kasus rata-rata dan terburuknya adalah Ο (n 2 ), di manan adalah jumlah item.

Bagaimana Cara Kerja Sortir Seleksi?

Pertimbangkan larik yang digambarkan berikut sebagai contoh.

Untuk posisi pertama dalam daftar yang diurutkan, seluruh daftar dipindai secara berurutan. Posisi pertama di mana 14 disimpan saat ini, kami mencari seluruh daftar dan menemukan bahwa 10 adalah nilai terendah.

Jadi kami mengganti 14 dengan 10. Setelah satu iterasi 10, yang kebetulan merupakan nilai minimum dalam daftar, muncul di posisi pertama daftar yang diurutkan.

Untuk posisi kedua, di mana 33 berada, kami mulai memindai sisa daftar secara linier.

Kami menemukan bahwa 14 adalah nilai terendah kedua dalam daftar dan seharusnya muncul di tempat kedua. Kami menukar nilai-nilai ini.

Setelah dua iterasi, dua nilai terkecil ditempatkan di awal dengan cara yang diurutkan.

Proses yang sama diterapkan ke item lainnya dalam larik.

Berikut adalah penggambaran bergambar dari seluruh proses penyortiran -

Sekarang, mari kita pelajari beberapa aspek pemrograman dari selection sort.

Algoritma

Step 1 − Set MIN to location 0
Step 2 − Search the minimum element in the list
Step 3 − Swap with value at location MIN
Step 4 − Increment MIN to point to next element
Step 5 − Repeat until list is sorted

Pseudocode

procedure selection sort 
   list  : array of items
   n     : size of list

   for i = 1 to n - 1
   /* set current element as minimum*/
      min = i    
  
      /* check the element to be minimum */

      for j = i+1 to n 
         if list[j] < list[min] then
            min = j;
         end if
      end for

      /* swap the minimum element with the current element*/
      if indexMin != i  then
         swap list[min] and list[i]
      end if
   end for
	
end procedure

Untuk mengetahui tentang implementasi sortir seleksi dalam bahasa pemrograman C, silakan klik di sini .