Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi MinSortstabil!?? (https://www.delphipraxis.net/65275-minsortstabil.html)

DOCBlue 14. Mär 2006 14:31


MinSortstabil!??
 
hallo Leute..
ich hab kleines Problem mit der Hausaufgabe..
wir sollen MinSort Sortiverfahren so schreiben, dass es "Stabil" ist..
aber soweit ich weiß, geht das doch gar nicht oder doch!? :?

so sieht normale MinSort bei uns aus..
als Hinweis hat der Lehrer uns das noch weiter gegeben:
"der KnotenMitKleinstenInhalt wird aus der Liste gelöscht und der Inhalt (kleinsterInhalt) wird hinter,vor das letzte Teilelement hinzugefügt"

Delphi-Quellcode:
//-------- MinSort (public) --------------------------------------------------
procedure TSortierListe.MinSort;
var KnotenMitKleinstemWert, ersterKnoten : TKnoten;
    i : Integer;
begin
     if Self.Laenge > 1
        then begin
                  Self.zumAnfang;
                  ersterKnoten := Self.liefereAktuellenKnoten;
                  for i := 1 to Self.Laenge do
                      begin
                           KnotenMitKleinstemWert := Self.findeKnotenMitKleinstemInhalt(ersterKnoten);
                           vertausche(ersterKnoten,KnotenMitKleinstemWert);
                           ersterKnoten := ersterKnoten.Nachfolger;
                      end;
             end;
end;

danke für die Hilfe vorraus :o

[edit=alcaeus]Delphi-Tags gesetzt. In Zukunft bitte selbst machen ;) Mfg, alcaeus[/edit]

Klaus01 14. Mär 2006 14:45

Re: MinSortstabil!??
 
Hallo,

MinSort (selectionSort) stabil -> HeapSort

anbei ein Link: http://turing.fh-landshut.de/~freisc...lgorithmen.pdf

auch noch ein guter Link für Sortieralgos: http://www.sortieralgorithmen.de/

und da wäre noch dieser: http://de.wikipedia.org/wiki/Stabil_...erverfahren%29

Selber nachdenken und machen macht schlau ;o)

Grüße
Klaus

Der_Unwissende 14. Mär 2006 14:48

Re: MinSortstabil!??
 
Hi,
um es einfach schon mal vorweg zu nehmen, natürlich geht es (sonst wäre die Aufgabe so schlecht wie der Code).
Zum Code muss ich echt sagen, dass Lehrer (hier mal ganz pauschal gesagt) echt nicht wissen was Codestil ist (gehe mal davon aus, dass der vom Lehrer formatiert wurde). Viel schöner geht das auch, wenn man ein wenig nach Konvention formatiert:

Delphi-Quellcode:
procedure TSortierListe.MinSort;
var KnotenMitKleinstemWert, ersterKnoten : TKnoten;
    i : Integer;
begin
  if Self.Laenge > 1 then
    begin
      Self.zumAnfang;
      ersterKnoten := Self.liefereAktuellenKnoten;
     
      for i := 1 to Self.Laenge do
        begin
          KnotenMitKleinstemWert := Self.findeKnotenMitKleinstemInhalt(ersterKnoten);
          vertausche(ersterKnoten,KnotenMitKleinstemWert);
          ersterKnoten := ersterKnoten.Nachfolger;
        end;
    end;
end;
By the way, du findest einen Button mit dem Titel Delphi-Code in dem Fenster in dem du Nachrichten schreibst, damit kannst du dann Delphi Code auch als solchen markieren. Wie gesagt, die Formatierung ist halt etwas unglücklich und macht den Code schwerer lesbar.

Zurück zum eigentlichen :

Zitat:

Zitat von DOCBlue
wir sollen MinSort Sortiverfahren so schreiben, dass es "Stabil" ist..
aber soweit ich weiß, geht das doch gar nicht oder doch!?

Ok, warum glaubst du denn, dass er nicht stabil zu bekommen ist? Einfache Frage vorweg, wann ist denn ein Sortieralgorithmus stabil? Wenn du dir das genauer überlegst, dann kennst du schon die wichtigste Regel, was passieren darf (und was nicht) um das zu gewährleisten.
Falls du da nicht von selbst drauf kommst, ist das kein Problem, dann sag einfach was du dir schon überlegt hast und wo du nicht weiter kommst.

Ich fasse das posten deines Codes einfach mal nicht als Aufforderung einer Lösung auf (wäre wohl die falsche Stelle ;-)), sonst müsste ich ja schließlich davon ausgehen, dass du möchtest dass dir jmd. die HA macht (was den Forensregeln widersprechen würde).
Aber wie gesagt, frag einfach weiter nach (und sag was du schon gemacht hast) und dir wird sicher geholfen werden.

Gruß Der Unwissende

DOCBlue 14. Mär 2006 15:18

Re: MinSortstabil!??
 
nene, ich hab das Programm nur reingepostet,
weil ich den Ansicht habe, dass die meisten hier anderen Delphicode benutzen als wir.
hm.. nun ja.. ich werds natürlich weiter probieren, die Aufgabe zu lösen.
Danke für die Antworten & freu mich aber auf weiteren Antworten ;)

alzaimar 14. Mär 2006 15:29

Re: MinSortstabil!??
 
Zitat:

Zitat von DOCBlue
nene, ich hab das Programm nur reingepostet,
weil ich den Ansicht habe, dass die meisten hier anderen Delphicode benutzen als wir.
hm.. nun ja.. ich werds natürlich weiter probieren, die Aufgabe zu lösen.
Danke für die Antworten & freu mich aber auf weiteren Antworten ;)

Lernt ihr eigentlich auch Deutsch in der Schule?

DOCBlue 14. Mär 2006 15:33

Re: MinSortstabil!??
 
An welcher stelle muss ich im algorithmus die Änderungen vornehmen? Meines erachtens nach sind das drei weitere Befehle, die ich schon geschreiben habe! Aber ich weiß nicht so genau, wo ich die einfügen muss. Mein Programm stürtzt immer ab -.-

Der_Unwissende 14. Mär 2006 15:58

Re: MinSortstabil!??
 
Zitat:

Zitat von DOCBlue
An welcher stelle muss ich im algorithmus die Änderungen vornehmen? Meines erachtens nach sind das drei weitere Befehle, die ich schon geschreiben habe! Aber ich weiß nicht so genau, wo ich die einfügen muss. Mein Programm stürtzt immer ab -.-

Na Mensch, in Zeile 4 ist dein Fehler, die musst du mit Zeile 2837 tauschen, dann läuft alles super.
Dir ist schon klar, dass wir nicht wissen wie deine geschriebenen Zeilen aussehen, wo du sie schon eingefügt hast,...?!

Sag doch einfach erstmal was genau stabil bedeutet, was du also glaubst du machen musst und dann erklärst du einfach mal wo du was eingefügt hast (wo es dann zum Fehler kommt). Dann kann man dir sicher helfen!

Klaus01 14. Mär 2006 15:59

Re: MinSortstabil!??
 
Wo stürzt es denn ab, welche Zeile in Deinem Code?
Welche Fehlermeldung bekommst Du?

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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