Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Array sortieren (https://www.delphipraxis.net/120401-array-sortieren.html)

falco953 10. Sep 2008 15:52


Array sortieren
 
Hallo,

ich hab einen Array. Dieser Array ist vom Typ TEintrag und besitz die String Variabeln Name und Nummer.
In diesen Array werden Namen und Nummern gespeichert.

Jetzt möchte ich eine Procedure schreiben, bei der dieser Array von a-Z sortiert wird.

Habe über die Forum suche schon einige Sortieralghorithmen gefunden, allerdings nur für Zahlen.

Wie geht da sbei Strings?

Vielen Dank für die Antwort und viele Grüße

Falco953

DeddyH 10. Sep 2008 16:00

Re: Array sortieren
 
Schau Dir mal AnsiCompareStr und AnsiCompareText an.

P.S.: Willkommen in der DP :dp:

brechi 10. Sep 2008 16:08

Re: Array sortieren
 
Du kannst Strings auch einfahc vergleichen;

if person1.name > person2.name then

jfheins 10. Sep 2008 16:14

Re: Array sortieren
 
Zitat:

Zitat von brechi
Du kannst Strings auch einfahc vergleichen;

if person1.name > person2.name then

Ähhhh ... ich glaube nicht, dass das so einfach geht ... oder zumindest nicht, dass dabei was sinvolles rausukommt ;)

rollstuhlfahrer 10. Sep 2008 16:19

Re: Array sortieren
 
HI,

natürlich kann man Strings ganz einfach mit <=> vergleichen vergleichen. Was anderes machen die Compare***-Prozeduren auch nicht. Für einenen besseren Einblick in die Sortierung zu bekommen, empfehle ich dir mal einen Blick in die Demos unter dem Stihwort Threads zu werfen. Dort werden 3 Integer-Arrays nach 3 verschiedenen Verfahren sortiert. Da dürfte bestimmt was für dich dabei sein.

Bernhard

DeddyH 10. Sep 2008 16:28

Re: Array sortieren
 
Der Unterschied zwischen meinen genannten Funktionen und einem einfachen <>-Vergleich liegt in den lokalen Einstellungen sowie der Behandlung von Groß- und Kleinschreibung.

mkinzler 10. Sep 2008 17:59

Re: Array sortieren
 
Ab D2009 könnte man das auch generisch lösen

falco953 10. Sep 2008 19:43

Re: Array sortieren
 
soory, unter dem stichwort threads finde ich nichts passendes.

Mein problem ist ja, das der Array eingelesen, sortiert und wieder ausgegeben werden soll.

habe halt leider keine ahnung, wie ich den entsprechenden algorithmus schreiebn muss.

danke für die vielen antworten und grüße

falco953

Zitat:

Zitat von rollstuhlfahrer
HI,

natürlich kann man Strings ganz einfach mit <=> vergleichen vergleichen. Was anderes machen die Compare***-Prozeduren auch nicht. Für einenen besseren Einblick in die Sortierung zu bekommen, empfehle ich dir mal einen Blick in die Demos unter dem Stihwort Threads zu werfen. Dort werden 3 Integer-Arrays nach 3 verschiedenen Verfahren sortiert. Da dürfte bestimmt was für dich dabei sein.

Bernhard


mkinzler 10. Sep 2008 19:44

Re: Array sortieren
 
Er meint das die mit delphi mitgelieferten Demos

falco953 12. Sep 2008 13:03

Re: Array sortieren
 
wecleh demos?

waren bei mir keine dabei

DeddyH 12. Sep 2008 13:14

Re: Array sortieren
 
Welche Delphi-Version hast Du denn?

LuCSteR 12. Sep 2008 14:20

Re: Array sortieren
 
was ganz einfaches zum sortieren wäre das hier:

Delphi-Quellcode:
for i:=0 to High(Arrayname)-1 do
  begin
    for j:=i+1 to High(Arrayname) do
      begin
        if j<i then //an dieser Stelle ist auszuprobieren ob die Strings wie gewollt verglichen werden...ansonsten so umwandeln, das sie vergleichbar werden :)
          begin
            h:=Arrayname[i];
            Arrayname[i]:=Arrayname[j];
            Arrayname[j]:=h;
          end;
      end;
  end;

mkinzler 12. Sep 2008 14:21

Re: Array sortieren
 
Wobei Bubble-Sort nicht sehr performant ist

LuCSteR 12. Sep 2008 14:25

Re: Array sortieren
 
Aber einfach und verständlich :) Gut wenn das Array mehrere Tausend Elemente hat ist die Methode fehl am Platz.

guidok 12. Sep 2008 14:55

Re: Array sortieren
 
Zitat:

Zitat von mkinzler
Wobei Bubble-Sort nicht sehr performant ist

Also ich glaube hier geht es um Informatikunterricht in der Schule (zumindest klingt das ganz so) und da ist Bubblesort ganz gut geeignet.

guidok 12. Sep 2008 14:56

Re: Array sortieren
 
Zitat:

Zitat von mkinzler
Wobei Bubble-Sort nicht sehr performant ist

Also ich glaube hier geht es um Informatikunterricht in der Schule (zumindest klingt das ganz so) und da ist Bubblesort ganz gut geeignet.

falco953 14. Sep 2008 11:57

Re: Array sortieren
 
vielen dank.

geht mit bubble sort super.

richtig erkannt, war ne frage für den informatik unterricht.

vielen dank für die antworten und viele grüße

falco953


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:43 Uhr.

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