Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision Next revision Both sides next revision | ||
dvprog_19 [2020-04-02 14:03] Daniel Viström created |
dvprog_19 [2022-03-31 14:31] Daniel Viström |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== 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å. | ||
+ | <code php> | ||
+ | <?php | ||
+ | // Måste vara referensparameter (&) för att ändringar i funktionen också | ||
+ | // ska gälla i huvudprogrammet. | ||
+ | function my_bubblesort(& | ||
+ | |||
+ | // 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 " | ||
+ | // 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]; | ||
+ | $a[$j] = $a[$j+1]; | ||
+ | $a[$j+1] = $temp; | ||
+ | } | ||
+ | $j++; | ||
+ | } | ||
+ | $i++; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | **Huvudprogrammet** | ||
+ | <code php> | ||
+ | <?php | ||
+ | include ' | ||
+ | include ' | ||
+ | |||
+ | $arr = [5, | ||
+ | my_bubblesort($arr); | ||
+ | $i = 0; | ||
+ | while($i < count($arr)){ | ||
+ | echo $arr[$i] . ' '; | ||
+ | $i++; | ||
+ | } | ||
+ | echo '< | ||
+ | |||
+ | include ' | ||
+ | </ | ||
+ | |||
+ | |||
<php> | <php> | ||
/* | /* | ||
- | Tutorial:\\ | ||
- | [[http:// | ||
*/ | */ | ||
</ | </ | ||
+ | |||