Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Hilfe zum programmieren von mergesort mit delphi (https://www.delphipraxis.net/131467-hilfe-zum-programmieren-von-mergesort-mit-delphi.html)

kleinewolke7 25. Mär 2009 09:58


Hilfe zum programmieren von mergesort mit delphi
 
bei diesem verfahren geht man davon aus, dass ein teilfeld ( das auch aus dem ersten element bestehen darf) geordnet vorliegt. das nächste feldelement wir ddann an der richtigen stelle eingefügt. dieses verfahren wird so lange wiederholt, bis alle elemente eingefügt sind.

könnt ihr mir da helfen?

so richtig versteh ich die frage nämlich nicht, das erste feldelement muss schon geordnet sein und das zweite feldelement wird dann jeweils an der richtigen stelle eingeordnet?

lg kleinewolke 7

Sherlock 25. Mär 2009 10:05

Re: Hilfe zum programmieren von mergesort mit delphi
 
Ein einzelnes Element ist immer sortiert, sogar aufsteigend und absteigend.

Es geht dann nur noch darum sortiert einzufügen. Also zu schauen, ob das neue Element, das man hat an die richtige Stelle eingefügt werden muss.

Sherlock

kleinewolke7 25. Mär 2009 10:09

Re: Hilfe zum programmieren von mergesort mit delphi
 
danke für den lösungsansatz,aber ich komme immer noch nicht weiter!

nahpets 25. Mär 2009 10:12

Re: Hilfe zum programmieren von mergesort mit delphi
 
Hallo,

hilft Dir hier eventuell Wikipedia weiter?
Oder hier in der DP ein Tutorial?
Eventuell ist auch eine Sortieralgorhythmenübersicht hilfreich?

kleinewolke7 25. Mär 2009 10:35

Re: Hilfe zum programmieren von mergesort mit delphi
 
hilft mir schon weiter. aber so richtig funktioniert das programm leider nicht :(

und ich weiß nicht, wo mein fehler liegt

Klaus01 25. Mär 2009 10:38

Re: Hilfe zum programmieren von mergesort mit delphi
 
.. dann zeige mal das was Du bisher gemacht hast.

Grüße
Klaus

kleinewolke7 25. Mär 2009 11:03

Re: Hilfe zum programmieren von mergesort mit delphi
 
Delphi-Quellcode:
implementation

{$R *.dfm}
       const n=10;
type tab=array[1..n] of integer;
var t:tab;

type data=array[1..n] of integer;
var d:data;

procedure TForm1.Button1Click(Sender: TObject);
procedure mergesort(l,r:integer);
var i, j, k, m : Integer;
Begin
  If (l < r) Then
  Begin
    m:= (r+l) div 2;

    MergeSort( l, m );
    MergeSort( m+1, r );

    For i:= l To m Do t[i]:= D[i];
    i:= l;

    For j:= m+1 To r Do t[r+m+1-j]:= D[j];
    j:= r;

    For k:= l To r Do
    Begin
      If (t[i] < t[j]) Then
      Begin
        D[k]:= t[i];
        inc( i ) ;
        end

      Else
     
      Begin
        D[k]:= t[j];
        dec( j );
        end;
   for i:=1 to n do listbox1.Items.add(inttostr(t[i]));
      end; (*hier kommt ein fehler, und ich weiß nicht,wie ich das beheben kann*)
      end;
      end;
      end.
[edit=Sharky]Delphi-Tags eingefügt. Mfg, Sharky[/edit]

Klaus01 25. Mär 2009 11:19

Re: Hilfe zum programmieren von mergesort mit delphi
 
Delphi-Quellcode:
const n=10;
type tab=array[1..n] of integer;
var t:tab;

type data=array[1..n] of integer;
var d:data;

procedure TForm1.Button1Click(Sender: TObject);
  procedure mergesort(l,r:integer);
  var i, j, k, m : Integer;
  Begin
    If (l < r) Then
      Begin
        m:= (r+l) div 2;

        MergeSort( l, m );
        MergeSort( m+1, r );

        For i:= l To m Do
          t[i]:= D[i];
        i:= l;

        For j:= m+1 To r
          Do t[r+m+1-j]:= D[j];
        j:= r;

        For k:= l To r Do
          Begin
            If (t[i] < t[j]) Then
              Begin
                D[k]:= t[i];
                inc( i ) ;
              end
            Else
              Begin
                D[k]:= t[j];
                dec( j );
              end;
           
            for i:=1 to n do
              listbox1.Items.add(inttostr(t[i]));
          end; (*hier kommt ein fehler, und ich weiß nicht,wie ich das beheben kann*)
      end;
  end;
end.
Die Prozedur mergeSort ist keine Methode
Deiner Klasse TForm, daher kennt die Prozedur die lustbix nicht.

Grüße
Klaus

kleinewolke7 28. Mär 2009 18:37

Re: Hilfe zum programmieren von mergesort mit delphi
 
mhm... jetzt habe ich die prozedur extra gemacht, jetzt zeigt es mir aber einen anderen fehler an, der vorher nie aufgefallen war :(

Klaus01 28. Mär 2009 18:40

Re: Hilfe zum programmieren von mergesort mit delphi
 
Zitat:

Zitat von kleinewolke7
mhm... jetzt habe ich die prozedur extra gemacht, jetzt zeigt es mir aber einen anderen fehler an, der vorher nie aufgefallen war :(

und der wäre?

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:00 Uhr.
Seite 1 von 2  1 2      

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