Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!! (https://www.delphipraxis.net/57463-brauch-hilfe-zum-thema-sortieralgorithmus-dringend.html)

neuronet 21. Nov 2005 22:02

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!
 
Kann sein, dass es so sein muss:

Delphi-Quellcode:
  h[i]:=strtoint(zufall.items[i-1]);
Bin mir nicht sicher, ob TListBox mit Index 0 oder 1 anfängt... :(

sniper_w 21. Nov 2005 22:03

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!
 
anstatt:
Delphi-Quellcode:
for i:=0 to n do
sollte
Delphi-Quellcode:
for i:=0 to zufall.count-1 do

Jacqybaby 21. Nov 2005 22:11

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!
 
super auf jeden fall bekomme ich jetzt schon mal die Zufallszahlen statt Nullen angezeigt allerdings nicht ganz sortiert, d.h. die Reihenfolge ist durcheinander aber wiederum verschieden zu der Reihenfolge der Listbox in der die Zufallszahlen angezeigt werden.


MFG Jacqybaby

neuronet 21. Nov 2005 22:14

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!
 
Das liegt dann am Sortieralgorithmus...

Schau mir den noch mal genauer an...

Jacqybaby 21. Nov 2005 22:22

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!
 
danke danke danke funktionniert.

MFG Jacqybaby

neuronet 21. Nov 2005 22:25

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!
 
Versuch's mal so:

Delphi-Quellcode:
procedure minimumsuche(n:integer; var h:array of integer);
var
  i,hilfsvar:integer;
  fertig: boolean
begin
  repeat
    fertig:=true;
    for i:=1 to n-1 do Begin
      if h[i] > h[i+1] then Begin
        hilfsvar:=h[i];
        h[i]:=h[i+1];
        h[i+1]:=hilfsvar;
        fertig:=false;
      end;
    end;
  until fertig;
end;

neuronet 21. Nov 2005 22:26

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!
 
Okay....

Sharky 22. Nov 2005 07:01

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!
 
Hai Jacqybaby,

nehme die Bilder doch bitte aus dem Posting und hänge sie als Anhang an. Das eine Bild hat ca 220 kByte und das andere auch über 130 kB. Nicht jeder der hier reinschaut hat eine DSL-Flatrate ;-)

Danke :-D

Um dies zu machen musst Du einfach nur in dem jeweiligen Posting von Dir auf den EDIT Button klicken. Dies geht allerdings nur innerhalb von 24 Stunden nach erstellen des Beitrages. Wenn Du es in dieser Zeit nicht schaffen solltest melde die Beiträge über das [!] Symbol einfach dem Team. Einer von uns wird sich der Sache dann sicher annehmen.

Jacqybaby 22. Nov 2005 10:22

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!
 
Ok ich bin soweit fertig mit dem Projekt jetzt fehlt mir nur noch ein Algorithmus zum Thema sortieren durch einfügen und das Messen der benötigten Zeit, kann mir jemand sagen wie das gehen soll ? Kann mir nicht vorstellen, dass das funktioniert. kennt jemand noch einen anderen Algorithmus zum sortieren duch Einfügen außer dem hier:

Delphi-Quellcode:
 
procedure TForm1.whileschleife(n:integer; var h:array of integer);
var i,j,li,re,m,x:integer;
begin
for i:=2 to n Do
begin
     x:=h[i];
     li:=1;
     re:=i-1;
              while li<=re do
              begin
              m:=(li+re)div 2;
              if x<h[m] then re:=m-1 else li:=m+1
              end;

     For j:=i-1 downto li do h[j+1]:=h[j];
     h[li]:=x;
     end;
end;
???

MFG Jacqybaby

neuronet 22. Nov 2005 12:18

Re: brauch hilfe zum Thema Sortieralgorithmus !!!Dringend!!!
 
So sollte es eigentlich funktioniere (nur noch editX anpassen):

Delphi-Quellcode:
procedure TForm1.whileschleife(n:integer; var h:array of integer);
var
  i, j, hilf      : integer;
  start, ende, diff: TDateTime
begin
  start:=Time; // Aktuelle Systemzeit speichern
  for i:=1 to n do begin
    j:=i;
    hilf:=h[i];
    while (j > 1) and (h[j-1] > hilf) do begin
      h[j]:=h[j-1];
      Dec(j);
    end;
    h[j]:=hilf;
  end;
  ende:=Time;       // Aktuelle Systemzeit speichern      
  diff:=ende-start; // Differenz berechenen
  editX.Text:=timetostr(diff); // Differenz ausgeben
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:39 Uhr.
Seite 2 von 2     12   

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