Lösningsförslag till uppgift 4 (Bubblesort)
Filen bubblesort.php
Jag väljer att lägga min sorteringsfunktion i en separat fil så att jag kan inkludera den i olika program utan att huvudprogrammet behöver komma med då.
<?php // Måste vara referensparameter (&) för att ändringar i funktionen också // ska gälla i huvudprogrammet. function my_bubblesort(&$a){ // Det behövs ett varv mindre än vad det är tal i arrayen. // T.ex. om det är 9 tal i arrayen och det största talet står sist // så behövs det 8 varv för att vara säker på att arrayen blir sorterad. // Om det sista talet är störst "bubblar" det ett steg mot starten av // arrayen för varje varv i den yttre loopen. $i = 0; while ($i < count($a) - 1){ // Loopar bara till näst sista elementet så att inte $a[$j+1] // hamnar utanför arrayen. $j = 0; while ($j < count($a) - 1){ if ($a[$j] < $a[$j+1]){ $temp = $a[$j]; // Byter plats via en temporär variabel. $a[$j] = $a[$j+1]; $a[$j+1] = $temp; } $j++; } $i++; } }
Huvudprogrammet
<?php include 'bubblesort.php'; include 'head.php'; $arr = [5,9,4,7,2,12,7,12,15]; my_bubblesort($arr); $i = 0; while($i < count($arr)){ echo $arr[$i] . ' '; $i++; } echo '<br>'; include 'foot.php';