Entwickler-Ecke
Sonstiges (Delphi) - Sortieren von Zahlenwerten bei arrays
delphianer5 - Mi 29.09.10 21:28
Titel: Sortieren von Zahlenwerten bei arrays
Hi,
ich schreibe morgen eine Kursarbeit über Informatik. Hab mir Übungsaufgaben besorgt. Bin mir aber nicht völlig sicher ob ich sie korrekt gelöst habe und wäre sehr dankbar wenn ihr mir helfen könntet. Ihr sollt hier nicht meine Hausaufgaben machen, ich will nur wissen ob das stimmt was ich sage und ob ich etwas verbessern kann oder etwas vergessen habe.
Danke!
Aufgabenstellung:
a) Sei "SortZahlen" ein
array mit 50 Elementen vom Typ
real. Gib die notwendigen Delphi-Anweisungen an, um "SortZahlen" so zu sortieren, dass im ersten Feldelement die kleinste Zahl steht, im zweiten die zweit kleinste usw.
b)Schätze ab, wie viele Schritte dein Algorithmus benötigt, bis alle Zahlen sortiert sind?
Meine Lösung:
a)
Delphi-Quelltext
1: 2: 3: 4: 5:
| repeat for i:= 1 to 50 do x[i]:=High(SortZahlen); until x[i]<x[i-1] |
[/quote]
B) 50 Schritte?
Wäre nett wenn da einer drüber schauen könnte. Danke!
mfg
Tranx - Mi 29.09.10 21:32
Es gibt eine Reihe von Sortierungsalgorithmen. Schau doch mal nach unter
http://www.sortieralgorithmen.de/
Dort findest Du alles dazu. Es sind leider nur Beispiele in C, aber das Übertragen sollte nicht ganz so kompliziert sein.
Gausi - Mi 29.09.10 21:41
Die einfachsten Varianten zum Sortieren sind imho Sortieren durch Auswahl und der allseits beliebte Bubblesort. Zumindest zu letzterem sollte sich haufenweise was hier im Forum finden. Grobe Laufzeitabschätzung für die Anzahl der Vergleiche bei 50 Zahlen: 2500. Je nach Implementierung reichen auch 1250, aber so in der Größenordnung bewegt sich das. ;-)
Delphi-Laie - Di 05.10.10 23:44
delphianer5 hat folgendes geschrieben : |
Aufgabenstellung:
a) Sei "SortZahlen" ein array mit 50 Elementen vom Typ real. Gib die notwendigen Delphi-Anweisungen an, um "SortZahlen" so zu sortieren, dass im ersten Feldelement die kleinste Zahl steht, im zweiten die zweit kleinste usw.
b)Schätze ab, wie viele Schritte dein Algorithmus benötigt, bis alle Zahlen sortiert sind? |
Ist zwar schon über den Termin, aber dennoch hier mein Senf dazu:
Da keinerlei Anforderungen an die Effizienz bzw. das Laufzeitverhalten des Sortieralgorithmus' gestellt worden zu sein scheinen, geht es auch ziemlich einfach (skizzenhaft):
überprüfe, ob die Datenmenge sortiert* ist.
Falls nein, vertausche zwei beliebige (am besten per Zufallsgenerator oder Permutation ausgewählte) Elemente
wiederhole solange, bis die Überprüfung positiv ausfällt.
*Was unter "sortiert" zu verstehen ist, muß natürlich vorher festgelegt werden, gewöhnlicherweise erfüllen "aufsteigend" oder "absteigend" dieses Kriterium.
Die Abschätzung der mittleren Laufzeit ist m.E. von der Größenordnung her recht simpel: n!/2. Das dauert länger als alle Ewigkeiten. Und das schöne ist: Die Aufgabenstellung wurde erfüllt, und man hat - im Gegensatz zu anderen Zöglingen - eine Lösung der "ganz besonderen Art", der man zudem die Systematik bei der Problemlösung bzw. dem Erfüllen der Aufgabenstellung auch nicht absprechen kann.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!