AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

mehrdimensionalen Array sortieren ???

Ein Thema von torud · begonnen am 13. Sep 2004 · letzter Beitrag vom 14. Sep 2004
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#11

Re: mehrdimensionalen Array sortieren ???

  Alt 13. Sep 2004, 22:43
kann sein, ich hab mir jetzt nicht so genau angeschaut, wie das Array deklariert ist.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#12

Re: mehrdimensionalen Array sortieren ???

  Alt 13. Sep 2004, 22:53
Hallo, danke!

Ich habe Euren Vorschlag probiert und leider bekomme ich nun die Fehlermeldung, dass Data undeklariert ist.

Folgendes mache ich bisher!
Delphi-Quellcode:
procedure TForm1.btn_sortby_heightClick(Sender: TObject);
var
  i,j,k,s:integer;
  HelpRecord : Array[0..9,0..99] of String;
begin
    //myRecord in HelpRecord einlesen
    for i:=0 to 99 do
      begin
        for k:=0 to 9 do
          begin
            HelpRecord[k,i]:=myRecord[k,i];
          end;
      end;

 //Bubblesort starts here
  s:=3; //bedeutet 3 = height
  For i:= high(myRecord[0]) downto low(myRecord[0]) Do
    For j:= low(myRecord[0]) To i Do
      If (Data[s, j-1] > Data[s, j]) Then SwapValues( j-1, j ); //in swapValues Tauschst du die ganze Zeile

end;
global habe ich deklariert
Delphi-Quellcode:
var
  myRecord : Array[0..9,0..99] of String;
Ich raffs einfach nicht
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#13

Re: mehrdimensionalen Array sortieren ???

  Alt 13. Sep 2004, 22:56
Schreib statt Data myRecord...
lass mich raten: er kenn SwapValues nicht?
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#14

Re: mehrdimensionalen Array sortieren ???

  Alt 13. Sep 2004, 23:02
yepp = genau, dass kennt er nicht!
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#15

Re: mehrdimensionalen Array sortieren ???

  Alt 13. Sep 2004, 23:09
schreib sowas:
Delphi-Quellcode:
procedure TForm1.btn_sortby_heightClick(Sender: TObject);
var
  i,k,j,s:integer; //s ist die Spalte, nach der sortiert werden soll
  buff: string;
begin
//Bubblesort starts here
  For i:= high(myRecord[0]) downto low(myRecord[0]) Do
    For j:= low(myRecord[0]) To i Do
      If (myRecord[s, j-1] > myRecord[s, j]) Then
      Begin
        For k := low(myRecord) To high(myRecord) Do
        Begin
          buff := myRecord[k, j-1];
          myRecord[k, j-1] := myRecord[k, j];
          myRecord[k, j] := buff;
        end;
      end;
end;
Müsste eigentlich klappen.

Edit: Fehler ausgebessert
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#16

Re: mehrdimensionalen Array sortieren ???

  Alt 13. Sep 2004, 23:22
hallo und vielen dank,

pc ist abgeschmiert, kanns erst morgen testen
Danke
Tom
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#17

Re: mehrdimensionalen Array sortieren ???

  Alt 14. Sep 2004, 10:15
Moin,
du kannst unter Open Source auch mal nach meinem Programm schaun, müsste noch ziemlich weit oben stehen
Da sind verschiedene Sortieralgos implementiert (derzeit Bubble-, Shell-, Insertion-, Selection Sort), die werden zeitlich und an Hand der Anzahl an Vergleiche verglichen.
Die Methoden müsstest du noch kurz umschreiben, damit du sie mit mehrdimensionalen Arrays verwenden kannst. Sollte aber nicht all zu schwer sein, denn hier wurde dir das ja schon am Beispiel des Bubblesorts gezeigt..
Alexander
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#18

Re: mehrdimensionalen Array sortieren ???

  Alt 14. Sep 2004, 10:18
hier ist der Thread: http://www.delphipraxis.net/internal...ct.php?t=33713
Alexander
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#19

Re: mehrdimensionalen Array sortieren ???

  Alt 14. Sep 2004, 13:42
Hallo Alexander!

Vielen Dank!

Ich werde es versuchen, weiss aber noch nicht, wann und ich bin mir auch noch nicht sicher, ob ich das mit dem Array nicht vielleicht doch besser irgendwie anders löse, da mir das alles viel zu aufwendig erscheint ich es anhand des Codes allein nicht verstehe.
Danke
Tom
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#20

Re: mehrdimensionalen Array sortieren ???

  Alt 14. Sep 2004, 14:25
Du könntest auch eine Liste nehmen...
Zum Sortierieren: Bubblesort ist eigentlich sehr langsam und daher nicht zu empfehlen. Man merkt es schon deutlich ab 5000 Einträgen. Hängt natürlich auch immer vom jeweiligen REchner ab..
Shellsort ist da schon wesentlich effektiver, natürlich noch nicht so effektiv wie Quicksort, aber dafür vermutlich leichter zu verstehen, da nicht rekursiv.
Ich habe mir Shellsort selber erklärt an Hand ein paar wenigen Stichworten, dann ein wenig nachgedacht und den Source auf'm Blatt Papier im Pseudo-Code geschrieben und nach Delphi portiert...
Das schaffst du bestimmt auch
Alexander
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:53 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