WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

 
 
Themen-Optionen Ansicht
Alt 03.06.2004, 17:50   #1
heli2sky
Master
 
Registriert seit: 02.10.2001
Alter: 38
Beiträge: 523


heli2sky eine Nachricht über ICQ schicken
Standard quicksort erklärung

PHP-Code:
<?php
$data 
file("data.txt");
foreach(
$data as $dat)
    echo 
"$dat | ";

echo 
"

[b]Daten werden sortiert...
"
;

$vergleich=0;
$tausch=0;
function 
quick($links,$rechts) {
    global 
$data,$pivot,$vergleich,$tausch;
    
$i $links;
    
$j $rechts;
    
$pivot $data[round(($i+$j)/2)];
    while(
$i<$j) {
        while((
$data[$i]+0) < ($pivot+0)) {
            
$vergleich++;
            
$i++;
        }
        while((
$data[$j]+0) > ($pivot+0)) {
            
$vergleich++;
            
$j--;
        }
        if(
$i<=$j) {
            
$tausch++;
            
$temp $data[$i];
            
$data[$i] = $data[$j];
            
$data[$j] = $temp;
            
$i++;
            
$j--;
        }
    }
    if(
$links $j)
        
quick($links,$j);
    if(
$i $rechts)
        
quick($i,$rechts);
}
quick(0,(count($data)-1));
echo 
"
$vergleich Vergleiche und $tausch Vertauschungen waren nötig!
"
;
echo 
"Daten sind sortiert und werden ausgegeben...[/b]

"
;
foreach(
$data as $dat)
    echo 
"$dat | ";
?>
Was macht das genau:
if($links < $j)
quick($links,$j);
if($i < $rechts)
quick($i,$rechts);
???

Und bitte nicht einfach nur so eine Antwort wie, "die Grenzen neu setzen" oder "die Funktion rekursiv aufrufen" - ich muss das genau wissen, sodass ich es auch erklären kann!

Die erste if-Schleife ist mir klar, die zählt so lange durch, bis j=links (links ist am Anfang fix 0 und j wird immer kleiner), aber was passiert dann? wie werden jeweils die rechten Hälften (bei Pivot=Mitte) durchsucht?

PS: Gibt es eine andere Möglichkeit aus irgendeiner Variablen eine "Zahl" zu machen als ($var+0) ?? -> Das Problem ist, dass wenn das nicht so geschrieben wird, es so sortiert wird: 1,10,110,2,3,30,4
____________________________________
Lang ist der Weg durch Lehren, kurz und wirksam durch Beispiele.
Lucius Annaeus Seneca


...:::www.modellbaulexikon.org:::...

www.acrobat-se.org | www.ams-8c.de.vu
heli2sky ist offline   Mit Zitat antworten
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:16 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag