Selection Sort dalam Bahasa C
1 January 2017 Comments Desktop Development , Tutorial CMahir Koding – Selection Sort merupakan salah satu algoritma sorting yang populer dan cukup sering digunakan. Sesuai namanya, algoritma sorting yang satu ini akan melakukan penyeleksian data dari kumpulan data yang belum di sort lalu memasukkannya ke dalam bagian yang sudah di sort. Sudah jelas, dalam tahap penyeleksiannya juga terjadi searching data selanjutnya yang akan di masukkan dalam sorted list.
Salah satu bentuk implementasinya adalah saat melakukan baris berbaris dari siswa yang terpendek hingga tertinggi. Pasti kita akan mencari yang terpendek lalu siswa tersebut masuk ke barisan. Dilanjutkan lagi dengan siswa yang kedua terpendek, memasuki barisan. Begitu selanjutnya..
Untuk mencari siswa terpendek, dilakukan searching. Oleh karena itu, algoritma selection sort juga disebut sebagai algoritma hasil penggabungan sorting dan searching.
- Pertama cari data terkecil (data dengan nilai terkecil) dari semua data. kemudian ditukar nilainya dengan data pertama.
- Kemudian cari data terkecil dari data kedua sampai data yang terakhir, kemudian ditukar nilainya dengan data kedua (data terkecil kedua ditukan posisinya dengan data kedua).
- Kemudian cari data terkecil dari data ketiga sampai data terakhir, lalu tukar nilainya dengan data yang ketiga.
- Begitu seterusnya sampai semua data menjadi terurut. Apabila ada N buah data yang akan kita diurutkan, maka kita butuh N-1 langkah pengurutan, dengan data yang terakhir, yaitu data ke N tidak perlu diurutkan sebab nilainya sudah pasti yang terkecil.
Contoh source code selection sort menggunakan bahasa C :
#include <stdio.h> //inisialisasi data int angka[10]={6,6,2,5,8,1,7,3,4,1}; void main(){ //looping sebanyak jumlah data for(int i=0; i<10; i++){ //anggap saja bahwa index ke i adalah angka terkecil int indexNilaiMinimal=i; //looping untuk mencari index/posisi angka yang terkecil //caranya adalah membandingkan angka satu per satu for(int j=i; j<10; j++){ //jika ada yang lebih kecil dari angka index ke indexNilaiMinimal if(angka[j]<angka[indexNilaiMinimal]){ //maka, ganti indexNilaiMinimal menjadi index angka tersebut indexNilaiMinimal=j; } } //swap value (tukar) int temp=angka[i]; angka[i]=angka[indexNilaiMinimal]; angka[indexNilaiMinimal]=temp; } //cetak data for(int i=0; i<10; i++){ printf("%d ", angka[i]); } getchar(); }
Jika ada pertanyaan yang kurang jelas silahkan berkomentar di bawah. Atau, jika ingin request tutorial juga dapat ke halamanĀ ini. Dukung terus Mahir Koding agar dapat selalu mengupdate artikel dengan share dan like artikel ini. Terima Kasih.