Algoritma Selection Sort

Posted by Admin on 21 Mei 2019, 16:39 algoritma selection sort, selection sort, selection sort php

Selection sort merupakan perbaikan dari metode bubble sort dengan mengurangi jumlah perbandingan. Selection sort merupakan metode pengurutan dengan mencari nilai data terkecil dimulai dari data diposisi 0 hingga diposisi N-1. Algoritma selection sort akan memindai nilai terkecil dari suatu kumpulan data dan jika ada, data tersebut akan diletakkan pada urutan pertama. Begitu selanjutnya untuk urutan kedua dan seterusnya.

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.

Algoritma Selection Sort dilakukan untuk menyempurnakan kekurangan dari bubble sort yang melakukan pertukaran setiap kali perbandingan memenuhi kriterianya.

Simulasi

Cara Kerja

Jika terdapat N data dan data terkoleksi dari urutan 0 sampai dengan N-1 maka algoritma pengurutan dengan metode selection sort adalah sebagai berikut :

  1. Cari data terkecil dalam interval j = 0 sampai dengan j = N-1
  2. 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 + i sampai dengan j = N-1, dan seterusnya sampai j = N - 1.

Contoh Perhitungan

Angka Awal :  15, 16, 2, 9

Proses 1 2, 16, 15, 9
Proses 2 2, 9, 15, 16
Proses 3 2, 9, 15, 16

Source Code Algoritma Selection Sort

function selection_sort($data)
{
    for ($i=0; $i<count($data)-1; $i++) {
        $min = $i;
        for ($j=$i+1; $j<count($data); $j++) {
            if ($data[$j]<$data[$min]) {
                $min = $j; //cari nilai terkecil
            }
        }
        //swap potition
        $temp = $data[$min];
		$data[$min] = $data[$i];
        $data[$i] = $temp;
        //end swap
    }
    return $data;
}

Cara penggunaan function diatas

$angka = array(3,1,10,7,4,6);
$hasil = selection_sort($angka);
print_r($hasil);

Demo Program dapat diliht disini