AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Hilfe zum programmieren von mergesort mit delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe zum programmieren von mergesort mit delphi

Ein Thema von kleinewolke7 · begonnen am 25. Mär 2009 · letzter Beitrag vom 28. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
kleinewolke7

Registriert seit: 25. Mär 2009
Ort: Sonneberg
7 Beiträge
 
#1

Hilfe zum programmieren von mergesort mit delphi

  Alt 25. Mär 2009, 09:58
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
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Hilfe zum programmieren von mergesort mit delphi

  Alt 25. Mär 2009, 10:05
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
Oliver
  Mit Zitat antworten Zitat
kleinewolke7

Registriert seit: 25. Mär 2009
Ort: Sonneberg
7 Beiträge
 
#3

Re: Hilfe zum programmieren von mergesort mit delphi

  Alt 25. Mär 2009, 10:09
danke für den lösungsansatz,aber ich komme immer noch nicht weiter!
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

Re: Hilfe zum programmieren von mergesort mit delphi

  Alt 25. Mär 2009, 10:12
Hallo,

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

Registriert seit: 25. Mär 2009
Ort: Sonneberg
7 Beiträge
 
#5

Re: Hilfe zum programmieren von mergesort mit delphi

  Alt 25. Mär 2009, 10:35
hilft mir schon weiter. aber so richtig funktioniert das programm leider nicht

und ich weiß nicht, wo mein fehler liegt
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Hilfe zum programmieren von mergesort mit delphi

  Alt 25. Mär 2009, 10:38
.. dann zeige mal das was Du bisher gemacht hast.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
kleinewolke7

Registriert seit: 25. Mär 2009
Ort: Sonneberg
7 Beiträge
 
#7

Re: Hilfe zum programmieren von mergesort mit delphi

  Alt 25. Mär 2009, 11:03
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]
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Hilfe zum programmieren von mergesort mit delphi

  Alt 25. Mär 2009, 11:19
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
Klaus
  Mit Zitat antworten Zitat
kleinewolke7

Registriert seit: 25. Mär 2009
Ort: Sonneberg
7 Beiträge
 
#9

Re: Hilfe zum programmieren von mergesort mit delphi

  Alt 28. Mär 2009, 18:37
mhm... jetzt habe ich die prozedur extra gemacht, jetzt zeigt es mir aber einen anderen fehler an, der vorher nie aufgefallen war
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Hilfe zum programmieren von mergesort mit delphi

  Alt 28. Mär 2009, 18:40
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
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:31 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