[PHP] Sortiranje elementov v polju (od min do max)

Kako bi to rešili brez uporabe PHP funkcije (sort($array, SORT_NUMERIC); ) in brez uporabe google? Se vam zdi naloga težka? Jo potrebujem neki za razumevanje pa se mi je zdelo, da bo lahka, zdaj se pa že par uric zajebavam z njo pa je še nisem rešil :P Se mi niti več ne da razmišljat.

Deloma sem jo rešil tako

$polje2 = [8, 0, 3, 39, 10];
        $polje3 = [];

        foreach ($polje2 as $key => $value) {
            $j = 0;
                if ($polje2[$key] > $polje2[$i]) {
                    $j++;
                }

                if ($i == count($polje2)-1) {

                    $polje3[$j] =  $polje2[$key];
                }
            }
        }

        var_dump($polje2);

        for ($i = 0; $i < count($polje3); $i++) {
            $min_to_max[$i] = $polje3[$i];
        }

        var_dump($polje3);
        var_dump($min_to_max);

Dela pa samo, če so vse vrednosti v polju različne :P Če niso, ne deluje, ker sem naredil tako, da prešteje kolikokrat je določena številka večja od ostalih in to vrednost potem zapišem v $key novega polja. Jasno se pri enakih številkah potem ta vrednost zapiše na enako mesto in potem je v polju eno nedefinirano mesto in se izpiše napaka.

Kako bi vi to nalogo rešili? Očitno ta način ni ravno preveč dober. Bi še malo razmišljal o nalogi, pa se mi ne da več, ker je že pozno.

6 odgovorov

Ne odkrivat tople vode. Poglej si kateri sortirni algoritmi so znani: http://sorting.at/ in potem poskusi kakšnega implementirat. Predlagam, da začneš z bubble sortom ker je še najlažji za razumevanje in implementacijo.

2

Tako kot ti je krifa napisal. Ne odkrivaj tople vode. Poglej si sortirne algoritme (predvsem tiste enostavne) in to je to.
Čeprav tole mi smrdi, da ste dobili eno nalogo v šoli/faxu in se ti ne da preveč raziskovat :)

1

Več kot dovolj primerov: https://phpcoderblog.wordpress.com/2013/02/26/php-some-sorting-algorithms-bubble-sort-selection-sort-counting-sort-quicksort-shellsort-heapsort/

1

Hvala vsem, ni pa to za šolo/faks (ga žal niti nimam), nekaj delam s sortiranjem večdimenzijskimi polj in sem si pač sam zadal nalogo, kako bi uredil sortiranje 1 dimenzijskih polj brez uporabe kakšnih že vgrajenih funkcij, tko na hitro se mi je zdelo trivialno, pa se je izkazalo, da niti ni. Bubble sort algoritem mi je super, preden bi se jaz kaj takšnega spomnil bi minilo še veliko časa :D bom v bodoče raje kar gledal že obstoječe algoritme, ker bom verjetno od tega več odnesel kot pa da izumljam toplo vodo :P

1

Če že rabiš lastno implementacijo uporabi usort()...

SlimDeluxe:
Če že rabiš lastno implementacijo uporabi usort()...

Ravno pri uporabi usort(), me je prešinila ideja, da bi (jasno samo za vajo) uredil sortiranje brez uporabe že vgrajenih funkcij.