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 bubblesort funzt ni need help (https://www.delphipraxis.net/112545-bubblesort-funzt-ni-need-help.html)

The_Doomed 23. Apr 2008 07:16


bubblesort funzt ni need help
 
Code:
procedure TForm1.sortbtnClick(Sender: TObject);
var i,j,n : integer;
    hilfe : string;
begin
 f2.Items.Clear;
 n:=f1.Items.Count-1;

 for i:=0 to n do feld[i+1]:=f1.Items[i];

 for i:=1 to n-1 do
  for j:=1 to n-1 do
    if feld[j]>feld[j+1] then
      begin
      hilfe:=feld[i];
      feld[i]:=feld[j];
      feld[j]:=hilfe;
      end;

  for i:=0 to n+1 do
  begin
  f2.Items.Add(feld[i+1]);
  end;
end;
kann mir jemand sagen was da dran falsch is ich krieg grad nix auf die reihe
danke schonmal vornweg

Klaus01 23. Apr 2008 07:21

Re: bubblesort funzt ni need help
 
Ist es richtig, dass das feld bei Dir ein Array of Integer ist?
Delphi-Quellcode:
for i:=0 to n do feld[i+1]:=f1.Items[i];
Dann geht das obige nicht, hier versuchst Du einen String einen Integertypen zuzuweisen.
Wenn dem so sein sollte, dann hilft Dir StrToInt():

Grüße
Klaus

DP-Maintenance 23. Apr 2008 07:23

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "VCL / WinForms / Controls" nach "Sonstige Fragen zu Delphi" verschoben.
Das hat mit der VCL nichts zu tun.

The_Doomed 23. Apr 2008 07:25

Re: bubblesort funzt ni need help
 
das isn array of string aber ich weiß ni was du denkst was ich umwandeln sollte

DeddyH 23. Apr 2008 07:29

Re: bubblesort funzt ni need help
 
Außerdem tauschst Du wohl die falschen Elemente:
Zitat:

Delphi-Quellcode:
    if feld[j]>feld[j+1] then
      begin
      hilfe:=feld[i];
      feld[i]:=feld[j];
      feld[j]:=hilfe;
      end;

Sollte wohl so heißen:
Delphi-Quellcode:
    if feld[j]>feld[j+1] then
      begin
      hilfe:=feld[j+1];
      feld[j+1]:=feld[j];
      feld[j]:=hilfe;
      end;

The_Doomed 23. Apr 2008 07:33

Re: bubblesort funzt ni need help
 
lol na ja jetzt verschwinden alle elemente muss ich da dann j+1 ausgeben lassen

Klaus01 23. Apr 2008 07:37

Re: bubblesort funzt ni need help
 
Zitat:

Zitat von The_Doomed
das isn array of string aber ich weiß ni was du denkst was ich umwandeln sollte

Wenn das ein Array of String ist, dann kannst
weiter unten nicht auf größer oder kleiner prüfen.
Ich meine das kannst Du schon, macht in diesem Zusammenhang aber wenig Sinn.
Oder willst Du Buchstaben sortieren?

Grüße
Klaus

marabu 23. Apr 2008 12:42

Re: bubblesort funzt ni need help
 
Hi,

Zitat:

Zitat von The_Doomed
... kann mir jemand sagen was da dran falsch is ich krieg grad nix auf die reihe ...

die gute Nachricht ist: Nur die Schleife ist so richtig falsch. Die schlechte Nachricht: BubbleSort ist nicht viel mehr.

Vielleicht solltest du dir mal diesen Thread durchlesen: Arrays sortieren

Grüße vom marabu

hoika 23. Apr 2008 13:02

Re: bubblesort funzt ni need help
 
Hallo,

Dein Bubblesort ist falsch.

Delphi-Quellcode:
for i:=1 to n-1 do
  for j:=i+1 to n-1 do
Du hast statt i+1 nur 1 genommen.

Ich würde besser Quicksort nehmen,
aber einer bestimmten Array-Zahl wird BubbleSort sehr langsam.


Heiko

TeronG 23. Apr 2008 13:10

Re: bubblesort funzt ni need help
 
und nicht
Delphi-Quellcode:
if feld[j]>feld[j+1] then
sondern
Delphi-Quellcode:
if feld[i]>feld[j] then


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 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