<?php
$test_numbers = array(20,100,555,777,1111);
foreach($test_numbers as $number){
$test_array = randomArray($number);
$ins = insertionSort($test_array);
$select = selectionSort($test_array);
echo " Select Time " .$select['time']." Select Iterations: ".$select['iterations'].
" Insert Time " .$ins['time']." Insert Iterations: ".$ins['iterations']."</br>";
}
function insertionSort($sort_array){
$time_start = microtime(true);
$iterations = 0;
for ($i = 0; $i<count($sort_array)-1; $i++){
$j = $i+1;
while ($j>0){
if ($sort_array[$j-1] > $sort_array[$j]){
$iterations++;
$temp = $sort_array[$j-1];
$sort_array[$j - 1] = $sort_array[$j];
$sort_array[$j] = $temp;
}
$j--;
}
}
$time_end = microtime(true);
$time = $time_end - $time_start;
$return = array("array" => $sort_array, "time" => number_format(($time),7, '.', ''), "iterations" => $iterations);
return $return;
}
function selectionSort($sort_array)
{
$time_start = microtime(true);
$iterations = 0;
$count = count($sort_array);
for ($i = 0; $i < $count - 1; $i++)
{
$min = $i;
for ($j = $i + 1; $j < $count; $j++)
{
$iterations++;
if ($sort_array[$j] < $sort_array[$min])
$min = $j;
}
$temp = $sort_array[$i];
$sort_array[$i] = $sort_array[$min];
$sort_array[$min] = $temp;
}
$time_end = microtime(true);
$time = $time_end - $time_start;
$return = array("array" => $sort_array, "time" => number_format(($time),7, '.', ''), "iterations" => $iterations);
return $return;
}
function randomArray($max){
$random = range(0, $max-1);
shuffle($random );
return $random;
}
preferences:
24.95 ms | 407 KiB | 5 Q