Penerapan Algoritma Selection Sort Untuk Melakukan Pengurutan Data Integer Secara Ascending Dalam Bahasa Pemrograman PHP

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.

Berikut ini implementasi algoritma Selection Sort untuk melakukan pengurutan data integer secara ascending dalam bahasa pemrograman PHP dengan ketentuan data di-generate secara random dari sistem dan pada akhir program di tampilkan durasi waktu eksekusi (running time).

Berikut source code dalam bahasa pemrograman PHP :

<?php

    //data di-generate secara random dari sistem
    for($x = 1; $x <= 1000; $x++)
    {
        $angka[] = rand(1, 100000);
    }
    //fungsi SelectionSort
    function SelectionSort($angka)
    {
        for($y = 0; $y < count($angka); $y++)
        {
            $min = $angka[$y];
            $key = $y;

            for($num = $y + 1; $num < count($angka); $num++)
            {
                if($angka[$num] < $min)
                {
                    $min = $angka[$num];
                    $key = $num;
                }
            }
            $temporary = $angka[$y];
            $angka[$y] = $min;
            $angka[$key] = $temporary;
        }
        var_dump($angka);
    }
    function MicrotimeFloat()
    {
        list($usec, $sec) = explode(" ", microtime());
        return ((float)$usec + (float)$sec);
    } 

    $waktu_mulai = MicrotimeFloat();
    SelectionSort($angka);
    $waktu_selesai = MicrotimeFloat();
    $waktu = $waktu_selesai - $waktu_mulai;
    
    //tampilkan durasi waktu eksekusi (running time)
    echo "Durasi waktu eksekusi $waktu detik.";

?>