![]() |
Sortierverfahren
Hallöchen
hab ein kleines Problem: Bin nicht besonders bewandert was Delphie angeht und muss aber für Info ein Sortierverfahren mit Delphie entwickeln. Ich weiß wirklich nicht, wie ich da anfangen soll. Kann mir jemand helfen??? Lg :wiejetzt: |
Re: Sortierverfahren
Wenn ich du wäre, dann würde ich mich mal bei Wikipedia schlau machen, was es überhaupt gibt und wo die Unterschiede liegen. Spontan fallen mir die folgenden ein (die Liste ist natürlich nicht zu 100% vollständig):
- Bubblesort - Quicksort - Mergesort - Heapsort - ... Schau mal ![]() |
Re: Sortierverfahren
Hallo,
Daniel hat vor einiger Zeit ein Tutorial zu Sortieralgorithmen geschrieben: ![]() Greetz alcaeus |
Re: Sortierverfahren
Und eine wirklich nette (alte) Seite mit Sortieralgorithmen in Pseudocode gibt es
![]() |
Re: Sortierverfahren
Dankeschön für die schnellen Antworten. :hello:
Zu dem mit Wikipedia: Jo, das war so mit meine erste Adresse, leider sind alle anderen aus meinem Kurs genauso schlau und wenn ich dann auch noch die selbe Tabelle habe, wie die 20 anderen, wäre das in meinen Augen irgendwie blöd also wollte ich mir anders helfen. Ja, also da sind schonmal viele gute Sachen dabei!! Dann hab ich noch eine Frage: Wonach beurteilt man die Leistungsfähigkeit der Verfahren? Sind das die Landau-Symbole?? Kann man da noch irgendwas genauer zu sagen??? Und wenn ich da jetzt mein eigenes Sortierverfahren programmiere, wie soll da überhaupt das Feld aussehen?? Klingt sicher voll dämlich, aber was soll da rein?? Edit-Fenster? Ein Memo?? Was soll da alles rein??? Dürften für euch Experten keine schweren Fragen sein... hoffe, ihr helft mir... is mir auch überaus peinlich, dass ich das nich weiß! :oops: |
Re: Sortierverfahren
Also ein Sortieralgorithmus macht seine Laufzeit aus -> siehe das O-Notation.
Wie meinst du genau mit "was solls da rein"? Die meisten Beispiel für Sortieralgorithmen sind für ein Array an Zahlen. Allerdings kann man mit meist wenigen Änderungen im Code den Alg. auch auf Strings oder andere Objekte anwenden. Du könntest es z.B. wie folgt machen: Gibt dem User ein Memo vor und lass Ihn pro Zeile eine Zahl eingeben. Daneben gibts du sie sortiere Reihenfolge aus. Zudem brauchst du auch noch eine ComboBox (oder auch Alternativen dazu) um den gewünschten Algorithmus auszuwählen und einen Start- bzw. Stop-Button. Ein weiteres Feature, was sehr interessant sein sollte: Die Zeitmessung -> siehe hierzu GetTickCount. |
Re: Sortierverfahren
Ja du hast mir die Frage "was soll da rein?" schon richtig beantwortet. Also ein Memo und Buttons und sone Combobox. Trotzdem wird die Sache komplizierter als ich dachte. Von Arrays hab ich zwar schon gehört, damit haben wir auch schon gearbeitet aber was das nun genau is, weiß ich nicht.
Naja, ich werd mal versuchen, irgendein Programm hinzuzimmern... wird sicher ne riesen Fehlerleiste... :| |
Re: Sortierverfahren
Vielleicht ist das was für dich:
![]() |
Re: Sortierverfahren
ja danke ein paar sachen sind mir davon schon bekannt...
is ja nich so, dass ich gar nüx kann, aber das was ich schon gelesen hatte, erschien mir nicht so leicht. ich hab noch etwas mehr als ne woche zeit, also setz ich mich da mal dran! danke für eure hilfe... :coder2: |
Re: Sortierverfahren
Ich hab nun so ein Programm geschrieben, aber es läuft noch nicht, ich weiß nicht, wo ich "N" deklarieren soll!?? :?:
|
Re: Sortierverfahren
Es würde helfen, wenn du hier den betreffenden Code zeigen könntest. Sonst wirds schwierig.
|
Re: Sortierverfahren
also ich hab jetzt hier irgendwas gemacht, weiß es selbst nicht so ganz...hab aus internet und meinem hefter irgendwas zusammengemotscht. bitte helft mir!
Procedure MergeSort( l, r : Integer ); var i, j, k, m : Integer; N : real; feld2Ddyn: array of array of 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 N[i]:= feld2Ddyn[i]; i:= l; For j:= m+1 To r Do N[r+m+1-j]:= feld2Ddyn[j]; j:= r; For k:= l To r Do Begin If (N[i] < N[j]) Then Begin feld2Ddyn[k]:= N[i]; inc( i ); End Else Begin feld2Ddyn[k]:= N[j]; dec( j ); End; End; End; End; |
Re: Sortierverfahren
ich weiß nichtmal ob es eine rolle spielt welches verfahren man benutzt. ich soll einfach zahlen eingeben und diese ordnen lassen. kann man dazu überhaupt mergesort verwenden??
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz