Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gnomesort (https://www.delphipraxis.net/77441-%2Ahilfe%2A-ich-brauch-eure-hilfe-sortieralgorithmus-gnomesort.html)

naschkatze1987 19. Sep 2006 17:21


*HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gnomes
 
Hallo Leute! :bounce1:
Ich brauche eure Hilfe bei dem Sortieralgorithmus Gnomesort. Ich muss den am Montag in der Schule vortragen. Den Quelltext dafür hab ich auch schon fertig. Theoretisch müsste er funktionieren, aber wie das so ist klappt es in der Praxis net. :wall: Der Algorithmus sortiert zwar aber nicht alles... :gruebel:
Naja hier erstmal der Quelltext:

Delphi-Quellcode:

procedure TForm1.BitBtn2Click(Sender: TObject);
var i,hilfe, Anzahl, Tauschung, Vergleiche : integer;

begin
i:=0;
Anzahl:=Listbox1.Items.Count;
Vergleiche:=0;
Tauschung:=0;

  while i<Anzahl-1 do
     Begin Vergleiche:=Vergleiche+1;

         if i<0 then
      begin
        i:=i+1;
      end;

    If StrToInt(Listbox1.Items[i]) > StrToInt(Listbox1.Items[i+1])
     then Begin
            hilfe:=StrToInt(Listbox1.Items[i]);
            Listbox1.Items[i]:=Listbox1.Items[i+1];
            Listbox1.Items[i+1]:=IntToStr(hilfe);
            Tauschung:=Tauschung+1;
            i:=i+1;
           End
     else i:=i-1;
     End;
   Label3.Caption:='Die Zahlen wurden '+InttoStr(Vergleiche)+' mal verglichen und '+InttoStr[Tauschung)+' mal getauscht!';

end;
Vielleicht könnt ihr mir ja helfen und wisst wo der Fehler liegt. :coder2: Wär jedenfalls total lieb, wenn mir jemand helfen könnte. Ich sag schon mal Danke im Voraus! :-D

Phoenix 19. Sep 2006 17:25

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
Such mal hier in der DP nach Hier im Forum suchenTutorial Sortieralgorithmen. Da gibts nämlich schon genug zu dem Thema was Deine Fragen eigentlich erschöpfend beantworten :)

dino 19. Sep 2006 17:29

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
hats einen grund, warum

Delphi-Quellcode:
if i<0 then
begin
i:=i+1
end;
Delphi-Quellcode:
statt if i<0 then inc(i)
steht?

Phoenix 19. Sep 2006 17:34

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
Wahrscheinlich weil die Naschkatze noch nicht so lange mit Delphi Programmiert und die Funktion inc() noch nicht kennt. Als ob daran das sortieren scheitern würde... :roll:

dino 19. Sep 2006 17:38

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
schau du mal, wo du gucken solltest... :)

mkinzler 19. Sep 2006 17:39

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
Zitat:

Zitat von dino
hats einen grund, warum

Delphi-Quellcode:
if i<0 then
begin
i:=i+1
end;
Delphi-Quellcode:
statt if i<0 then inc(i)
steht?

Ist doch das Selbe und keine Fehler.

http://de.wikipedia.org/wiki/Gnomesort

Khabarakh 19. Sep 2006 17:41

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
Naja, über die Steigerung der Übersichtlichkeit durch Inc ließe sich streiten ;) .

@naschelnde Katze: Vergleich deine Implementation nochmal mit der Algorithmusbeschreibung ;) . Am Schluss muss es heißen
Delphi-Quellcode:
. = DerZuIgnoriendeEinrückungsaktivierendePunkt

            i:=i-1;
           End
     else i:=i+1;
     End;

dino 19. Sep 2006 17:51

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
ich habe nicht gesagt, dass es falsch ist :)
ok dem Lehrer könnts vielleicht merckwürdig erscheinen, wenn plötzlich inc(i) steht

naschkatze1987 19. Sep 2006 18:25

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
also ich weiß was inc(i) oder auch dec(i) bedeutet... :P nur ich weiß nicht ob mein Lehrer glaubt dass ich es weiß und so ist es ja auch einfacher

naschkatze1987 19. Sep 2006 18:27

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
Zitat:

Zitat von Khabarakh
Naja, über die Steigerung der Übersichtlichkeit durch Inc ließe sich streiten ;) .

@naschelnde Katze: Vergleich deine Implementation nochmal mit der Algorithmusbeschreibung ;) . Am Schluss muss es heißen
Delphi-Quellcode:
. = DerZuIgnoriendeEinrückungsaktivierendePunkt

            i:=i-1;
           End
     else i:=i+1;
     End;


:?: HÄ? :?:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:39 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz