Pengurutan Seleksi (Selection Sort) pada Bahasa C

Pada tulisan sebelumnya telah dibahas mengenai metode pengurutan Sisip atau Insertion Sort, pada tulisan akan dibahas mengenai metode pengurutan Seleksi. Metode pengurutan Seleksi atau Selection Sort  ini mencari nilai terkecil atau terbesar dari data yang ada, kemudian ditempatkan pada index terdepan, lalu mencari lagi nilai terkecil atau terbesar kedua dari data kurang 1, setelah ketemu elemen kedua ditukar dengan nilai minimum, begitu seterusnya.

Proses Pengurutan Seleksi

Misalkan data : 89 32 43 23 54 64 12 53 63 50, maka langkah-langkah pengurutannya adalah sebagai berikut:

  1. Cari data terkecil pada baris bilangan untuk ditempatkan pada posisi ke-1 12 merupakan data terkecil. 89 32 43 23 54 64 12 53 63 50.
  2. Tukar posisi dengan bilangan yang berada di posisi ke-1 12 32 43 23 54 64 89 53 63 50.
  3. Cari data terkecil dari posisi bilangan ke 2 sampai ke-10 pada baris bilangan untuk ditempatkan pada posisi ke-2.
  4. Maka diketahui 23 adalah bilangan terkecil ke-dua dari baris 12 32 43 23 54 64 89 53 63 50.
  5. Tukar posisi dengan bilangan yang berada di posisi ke-2 12 23 43 32 54 64 89 53 63 50.
  6. Proses terus berulang sampai posisi terakhir.

Kode Program Pengurutan Seleksi

#include <stdio.h> 
 
main(){ 
 
    int tabInt[100]; 
    int i,j,temp,minIndeks,n; 
 
    n=100; 
    //masukan data 
    for(i=0;i<n;i++){ 
        tabInt[i]=n-i; 
    } 
    printf("n"); 
 
    //keluarkan data 
    for(i=0;i<n;i++){ 
       printf("%d  ", tabInt[i]); 
    } 
    printf("n"); 
 
     for(i=0; i<n; i++){ 
     /*inisialisasi indeks elemen minimum*/ 
     minIndeks = i ; 
    /*perulangan mencari nilai minimum sepanjang indeks i + 1 sampai jumlah elemen array*/ 
     for(j=i+1; j<n; j++){ 
        if(tabInt[minIndeks] > tabInt[j]){ 
           minIndeks = j; 
        } 
     } 
     //menukar posisi elemen 
     temp = tabInt[i]; 
     tabInt[i] = tabInt[minIndeks]; 
     tabInt[minIndeks] = temp; 
    } 
 
    //keluarkan data 
    for(i=0;i<n;i++){ 
       printf("%d  ", tabInt[i]); 
    } 
}

Arah Pengurutan

Pengurutan dari kecil ke besar

if(tabInt[min] > tabInt[j] ;

Pengurutan dari besar ke kecil

if(tabInt[min] < tabInt[j];

Demikian penjelasan mengenai pengururan seleksi atau Selection Sort, selanjutnya silahkan pelajari Pengurutan Gelembung (Bubble Sort) Pada Bahasa C.

1 Trackbacks & Pingbacks

  1. Pengurutan Sisip (Insertion Sort) | Onestring Lab

Leave a Reply

Your email address will not be published.


*