[PHP] Sortieren durch Austauschen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Don Poncho, 14. September 2008 .

  1. 14. September 2008
    Sortieren durch Austauschen

    Hi,
    habe probiert einen sortier algorithmus zu probieren der nach dem verfahren des austauschens die elemente eines arrays zu sortieren.
    leider funktioniert das nich so richtig und ich weiss nich wieso...
    deswegen: könntet ihr mir vll helfen?
    wäre nett wenn ihr das problem in meinem code kennzeichnen könntet und nich gleich völlig neue programme postet

    Code:
    <?php
    
    //-------------------Die Swap Funktion------------------------------------------
    
     function swap($zint, $ul){
     
     $kelement=$ul[$zint];
     $nelement=$ul[++$zint];
    
     if ($kelement>=$nelement){
     
     $temp=$kelement;
     $kelement=$nelement;
     $nelement=$temp;
     }
    
     else{
     
     $zint++;
     
     }
     
     }
    
    //-------------------Das Array-------------------------------------------------- 
    
     $ul = array ("Hans", "Otto", "Egon", "Ulli", "Alf", "Horst");
    
    //-------------------Die äußere Schleife----------------------------------------
    
     for ($zul=0;$zul<count($ul);$zul++){
    
    //-------------------Die innere Schleife---------------------------------------- 
    
     for ($zint=0;$zint<count($ul);$zint++){
    
    //-------------------Aufruf der Swap Funktion mit den Parametern $zint und $ul-- 
    
     swap($zint, $ul);
    
    //-------------------Ausgabe des momentanen Arrays------------------------------ 
    
     while ($i<=count($ul)){
     echo $ul[$i];
     echo "<br>";
     $i++;
     }
     
     }
     
     }
    
    //-------------------$i wird definiert------------------------------------------
    
     $i=0; 
    
    //-------------------Ausgabe des entgültigen Arrays-----------------------------
    
     while ($i<=count($ul)){
     
     echo $ul[$i];
     echo "<br>";
     $i++;
    
     }
    
    //-------------------Ende ^^----------------------------------------------------
    
    ?>
    
    
     
  2. 14. September 2008
    AW: Sortieren durch Austauschen

    nee das es soll ja nich aufsteigen sondern austauschen sein!
     
  3. 14. September 2008
    AW: Sortieren durch Austauschen

    schau mal auf Allgemeine und spezielle Sortieralgorithmen + Suchalgorithmen, vielleicht findest du da hilfe.
     
  4. 16. September 2008
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    AW: Sortieren durch Austauschen

    Showthread Php 241644 / Download - RR:Suche

    Ist zwar in C++, aber du kannst dir die Theorie durchlesen und sie in PHP umsetzen. Wobei es in PHP ja ziemlich ähnlich gehen müsste.
     
  5. 16. September 2008
    AW: Sortieren durch Austauschen

    du swapst in deiner schleife glaube ich das letzte element des arrays mit dem sozusagen nächsten - welches garnicht existiert.

    die innere schleife muss
    Code:
    for ($zint=0;$zint<count($ul)-1;$zint++){
    sein. da es ja reicht das vorletzte mit dem letzten zu tauschen und du darfst das letzte nicht mit dem letzten+1 tauschen.

    und du kannst das ganze noch optimieren, in dem du die äußere schleife von oben nach unten laufen lässt und die innere schleife nur bis zur aktuellen äußeren laufvariable gehen lässt.
    du schiebst ja in jedem äußeren schleifendurchlauf das größte element nach ganz rechts. das brauchst du denn ja nicht nochmal checken obs das größste ist im zweiten durchlauf denn das zweitgrößte etc etc...

    naja nur so am rande^^

    hoffe das sollte jetzt klappen, rückmeldung wäre fein.

    mfg
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.