Selection Sort adalah perbaikan dari algoritma bubble sort, dengan mengurangi jumlah perbandingan. Dikatakan selection sort karena algoritma ini mencoba memilih satu per satu elemen data dari posisi awal, untuk mencari data paling kecil dengan mencatat posisi index-nya saja, lalu dilakukan pertukaran hanya sekali pada akhir setiap tahapan.
Selection sort merupakan metode pengurutan dengan mencari nilai data terkecil dimulai dari data diposisi 0 hingga diposisi N-1. Jika terdapat N data dan data terkoleksi dari urutan 0 sampai dengan N-1 maka algoritma pengurutan dengan metode selection sortadalah sebagai berikut:
1. Cari data terkecil dalam interval j= 0 sampai dengan j= N-12. Jika pada posisi pos ditemukan data yang terkecil, tukarkan data diposisi pos dengan data di posisi i jika k.
3. Ulangi langkah 1 dan 2 dengan j= j+isampai dengan j= N-1, dan seterusnya sampai j = N - 1.
Contoh pengurutan dengan Algoritma Selection Sort adalah Sbb.
Jika kita memiliki elemen array : {5, 1, 12, -5, 16, 2, 12, 14} maka cara pengurutannya
Source Code Selection Sort dalam PHP
<!DOCTYPE html> <html> <head> <title>Sorting1</title> </head> <body> <h3 style="text-decoration:underline";>Selection Sort</h3> <?php $data[0]=5; $data[5]=3; $data[1]=2; $data[6]=1; $data[2]=4; $data[7]=9; $data[3]=7; $data[8]=8; $data[4]=6; echo "<b>Jumlah Data : 9</b><br>"; echo "<b>Data Awal : </b>"; for($i=0;$i<=8;$i++) { echo "$data[$i] "; } echo"<br/><br/>"; for($j=0;$j<=8-1;$j++) { $BilMin=$data[$j]; for($k=$j+1;$k<=8;$k++) { if($data[$k]<$BilMin) { $BilMin=$data[$k]; $Posisi=$k; } $Temp=$data[$j]; $data[$j]=$data[$Posisi]; $data[$Posisi]=$Temp; } $NoIterasi=$j+1; echo"Iterasi ke-$NoIterasi : "; for($i=0;$i<=8;$i++) { echo "$data[$i] "; } echo "<br/>"; } ?> </body> </html>