Mijn vraag
Ik moet een php quicksort algoritme schrijven voor school en uiteraard wil ik dat ook zelf doen in plaats van code te kopieëren. De code hieronder loopt voor het grootste gedeelte goed tot hij bij het recursieve gedeelte komt. Ik weet ook niet of de oplossing die ik werkend probeer te maken wel juist is ( Blijkbaar niet door de errors
).
Ik krijg de error "Notice: Undefined offset: -1 in C:\xampp\htdocs\tests\quicksort.php on line 30" en die word oneindig gelooped.
Line 30 voor de duidelijkheid is bij mij
De error komt na het plaatsen van de code
De rest van de code
De getallen uit de array worden uit invoervelden gehaald. Dit leek mij geen relevante code.
Ik zoek dus iemand die me even in de juiste richting wil duwen waar ik op moet letten of naar moet kijken aangezien ik me aardig aan het blindstaren ben op deze code momenteel.
Ik heb het hele proces al met pen en papier zelfs nagelopen maar daar kwam ik helaas ook niet verder mee.
Alvast bedankt als je een tip hebt!
Ik moet een php quicksort algoritme schrijven voor school en uiteraard wil ik dat ook zelf doen in plaats van code te kopieëren. De code hieronder loopt voor het grootste gedeelte goed tot hij bij het recursieve gedeelte komt. Ik weet ook niet of de oplossing die ik werkend probeer te maken wel juist is ( Blijkbaar niet door de errors
Ik krijg de error "Notice: Undefined offset: -1 in C:\xampp\htdocs\tests\quicksort.php on line 30" en die word oneindig gelooped.
Line 30 voor de duidelijkheid is bij mij
PHP:
1
| while($array[$r] >= $pivot) $r--; |
De error komt na het plaatsen van de code
PHP:
1
| return array_merge(sortArray($array, $left, $l-1),sortArray($array, $l, $right)); |
De rest van de code
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| // Create a array with the variables $myArray = array($getal1, $getal2, $getal3, $getal4, $getal5, $getal6); $sortedNumbers = sortArray($myArray, 0, sizeof($myArray) -1); } function sortArray($array, $left, $right) { // Check if the array is 1 or shorter if(sizeof($array) <= 1) { return $array; } // Asign necessary variables $l = $left; $r = $right; $pivot = $array[0]; // Run through the array to look for numbers bigger and smaller than the pivot while($r >= $l) { while($array[$l] <= $pivot) $l++; while($array[$r] >= $pivot) $r--; if($l < $r) { if($array[$l] > $array[$r]) { $temp = $array[$l]; $array[$l] = $array[$r]; $array[$r] = $temp; } } } // Switch the pivot with the $l-1 position $x = $array[$l-1]; $array[$l-1] = $array[$left]; $array[$left] = $x; return array_merge(sortArray($array, $left, $l-1),sortArray($array, $l, $right)); } |
De getallen uit de array worden uit invoervelden gehaald. Dit leek mij geen relevante code.
Ik zoek dus iemand die me even in de juiste richting wil duwen waar ik op moet letten of naar moet kijken aangezien ik me aardig aan het blindstaren ben op deze code momenteel.
Ik heb het hele proces al met pen en papier zelfs nagelopen maar daar kwam ik helaas ook niet verder mee.
Alvast bedankt als je een tip hebt!