Beste lezer,
Voor 'n opdracht moet ik deze array sorteren van hoog naar laag:
Echter, kan ik niet bedenken hoe ik dat zou moeten doen,echter mag ik geen gebruik maken van de standaard PHP functie. Kan iemand mij helpen?
Alvast bedankt!
Beste lezer,
Voor 'n opdracht moet ik deze array sorteren van hoog naar laag:
Echter, kan ik niet bedenken hoe ik dat zou moeten doen,echter mag ik geen gebruik maken van de standaard PHP functie. Kan iemand mij helpen?
Alvast bedankt!
Hallo,
Loop door de array. Ga dan een nieuwe array maken en vergelijk de waardes telkens. Zoek eerst laagste waarde, voeg toe aan nieuwe array. Voeg dan de 1 na laagste enz.
Er zijn meer technieken. Google eens op array sort algorithms of iets dergelijks.
Mvg,
Tim
Try this; voorbeeld: http://ferhakd77.seventyseven.axc.nl/
Hallo,
Dat mag dus niet Ferhat
Overigens, asort maakt ook gewoon gebruik van zo'n logaritme.
Mvg,
Tim
OW, had niet alles gelezen haha. Dan zou ik Tims voorbeeld volgen.
Aha, sorteeralgoritmes! Er zijn heel veel verschillende sorteeralgoritme bedacht die ook worden ingezet in programmeertalen. De ingebouwde sorteerfuncties in programmeertalen zijn vaak een combinatie van quicksort en bubblesort. Dit omdat bubblesort erg snel is op bijna gesorteerde arrays en quicksort juist niet. Quicksort is met een complexiteit van O(log n) wel het minst complex mogelijke storteeralgoritme.
Wikipedia heeft een interessante pagina over dit onderwerp: http://en.wikipedia.org/wiki/Sorting_algorithm
Ik heb een implementatie van bubblesort voor je geschreven:
<?php
function bubble_sort($array) {
$swapped = false;
for($i = 0; $i + 1 < count($array); $i++) {
if($array[$i] > $array[$i + 1]) {
$temp = $array[$i];
$array[$i] = $array[$i + 1];
$array[$i + 1] = $temp;
$swapped = true;
}
}
if($swapped) {
return bubble_sort($array);
} else {
return $array;
}
}
Toon Meer
Toon MeerHallo,
Loop door de array. Ga dan een nieuwe array maken en vergelijk de waardes telkens. Zoek eerst laagste waarde, voeg toe aan nieuwe array. Voeg dan de 1 na laagste enz.
Er zijn meer technieken. Google eens op array sort algorithms of iets dergelijks.
Mvg,
Tim
Bedankt voor uw antwoord. Zou u mij toevallig ook een voorbeeld kunnen geven?
De complexiteit van Tim's algoritme is n^2, het is dus een erg traag algoritme! Zal eens kijken of ik de naam ervan kan vinden..
Dat was niet moeilijk te vinden, selection sort, of course:
De complexiteit van Tim's algoritme is n^2, het is dus een erg traag algoritme! Zal eens kijken of ik de naam ervan kan vinden..
Dat was niet moeilijk te vinden, selection sort, of course:
Hallo,
Bubblesort is ook n^2 in de meeste gevallen? :p
Kon je beter quicksort geven haha!
Maar denk dat snelheid er niet toe doet, omdat een zelfgemaakte php implementatie hiervan zoiezo langzamer is dan de native. Dacht net met een schuin ook te hebben kunnen lezen dat de native ongeveer 15x zo zo snel is.
Mvg,
Tim
Toon MeerAha, sorteeralgoritmes! Er zijn heel veel verschillende sorteeralgoritme bedacht die ook worden ingezet in programmeertalen. De ingebouwde sorteerfuncties in programmeertalen zijn vaak een combinatie van quicksort en bubblesort. Dit omdat bubblesort erg snel is op bijna gesorteerde arrays en quicksort juist niet. Quicksort is met een complexiteit van O(log n) wel het minst complex mogelijke storteeralgoritme.
Wikipedia heeft een interessante pagina over dit onderwerp: http://en.wikipedia.org/wiki/Sorting_algorithm
Ik heb een implementatie van bubblesort voor je geschreven:
PHPToon Meer<?php function bubble_sort($array) { $swapped = false; for($i = 0; $i + 1 < count($array); $i++) { if($array[$i] > $array[$i + 1]) { $temp = $array[$i]; $array[$i] = $array[$i + 1]; $array[$i + 1] = $temp; $swapped = true; } } if($swapped) { return bubble_sort($array); } else { return $array; } }
Enorm bedankt voor uw antwoord! Daarmee is mijn vraag opgelost. Nogmaals bedankt!
http://php.net/manual/en/function.min.php
Je kunt hiermee werken of met max(). Elke keer de laagste/hoogste selecteren en dan die in een aparte array zetten en dan die value verwijderen.
http://php.net/manual/en/function.min.php
Je kunt hiermee werken of met max(). Elke keer de laagste/hoogste selecteren en dan die in een aparte array zetten en dan die value verwijderen.
Hallo,
Sorteer technisch is dat onhandig aangezien die functie zelf ook door de array loopt om de hoogste waarde eruit te halen.
Mvg,
Tim
Heb je nog geen account? Registreer je nu en word deel van onze community!