kaapurs Posted October 28, 2007 Report Share Posted October 28, 2007 Gribētos uzzināt, vai pareizi esmu izpratis f-as darbību: function SortByLength($element1, $element2) { $lengthOfElement1 = strlen($element1); $lengthOfElement2 = strlen($element2); if($lengthOfElement1 == $lengthOfElement2) return 0; return ($lengthOfElement1 < $lengthOfElement2) ? -1 : 1; } Ja es viņu izmantoju, kā f-as usort() argumentu, tad masīva elementus viņa sakārto pēc principa tas, kuram salīdzinājuma izteiksmēs visvairāk būla "-1" atradīsies sākumā u.t.t. Vai es pareizi esmu sapratis? Un pēc kāda principa usort() šajā gadījumā veiks elementu salīdzināšanu? Piemēram, ja man ir array(element1, element2, element3, element4), tad kādā veidā usort() ievada masīva elementus argumenta f-ā. Piem., element1 ar element2, pēc tam element2 ar element3 u.t.t., vai arī uzreiz element1 salīdzina ar pārējiem masīva elementiem, t.i., element1 ar element2, element1 ar element3 u.t.t. Paldies. Link to comment Share on other sites More sharing options...
bubu Posted October 28, 2007 Report Share Posted October 28, 2007 php sort funkcija kārtošanu veic pēc Quick Sort algoritma. Algoritma aprakstā tu vari izlasīt kā notiek tā salīdzināšana un elementu mainīšana vietām. Lietotāja definētā funkcija atgriež saņem tikai divas vērtības tāpēc, ka quick sort algoritmam salīdzināt vienā reizē vajag tikai divus elementus. Un šai funkcijai ir jānoskaidro, kura no padotajām vērtībām ir lielāka/mazāka vai arī abas vienādas. Tas, kurā vietā beigās atradīsies ieejas masīva elementi šī funkcijai viennozīmīgi uzreiz nepasaka, to visu nosaka kārtošanas algoritms. Un kas ir "būla -1"? Būla vērtības ir tikai divas - false/true vai 0/1. Link to comment Share on other sites More sharing options...
kaapurs Posted October 28, 2007 Author Report Share Posted October 28, 2007 Par tādu Quick Sort nebiju nemaz dzirdējis, bet, palasot informāciju tevis dotajā linkā, sapratu, ka funktieris man bija +/- tāds pats. Paldies. Link to comment Share on other sites More sharing options...
Recommended Posts