J'ai l'impression que ces deux implémentations font la même chose, mais ce serait bien si vous pouviez aussi me dire si elles font la même chose (du point de vue des performances), par exemple en termes de nombre d'instructions exécutées. Je vous remercie.
<?php
$arr = array(10, 2, 3, 14, 16);
function sortOne($arr) {
$instructionCount = 0;
for ($i = 1; $i < count($arr); $i++) {
$instructionCount++;
for ($j = $i - 1; $j >= 0 && ($arr[$j] > $arr[$i]); $j--) {
$instructionCount++;
$tmp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $tmp;
}
}
echo "\nTotal Instructions for Sort One: $instructionCount\n";
return $arr;
}
function sortTwo($array) {
$instructionCount = 0;
for($j=1; $j < count($array); $j++){
$instructionCount++;
$temp = $array[$j];
$i = $j;
while(($i >= 1) && ($array[$i-1] > $temp)){
$instructionCount++;
$array[$i] = $array[$i-1];
$i--;
}
$array[$i] = $temp;
}
echo "\nTotal Instructions for Sort Two: $instructionCount\n";
return $array;
}
var_dump(sortOne($arr));