![]() |
Zufallszahlen / Sortierverfahren
Hallo liebe Delphianer!
Ich habe bald meine mündliche Abiprüfung in Informatik. Schwerpunkt wird sein: Simulationen durch Zufallszahlen und Sortierverfahren. Dazu zwei Fragen: 1.) initialization randomize Wofür genau brauche ich das? Damit wird das Random initialisiert, weil ansonsten der erste Wert von Random immer gleich ist. Irgendwie hängt das wohl mit der Erstellung der Pseudozufallszahlen mithilfe der Systemuhr zusammen, aber wie genau funktioniert das? 2.) instablile Sortierverfahren Bei stabilen Sortierverfahren behalten Datensätze mit gleichem Schlüsselwort ihre Reihenfolge bei (kann man das so sagen?). Aber was genau sind instabile Sortierverfahren? Bei MergeSort z.B. weiß man ja nicht, wie die Datensätze mit gleichem Schlüsselwort sortiert sind, das ist quasi zufällig (jedenfalls wenn ich das richtig verstanden habe). Bei Selectionsort ist das nicht zufällig, da sind die Datensätze mit gleichem Schlüsselwort in umgekehrter Reihenfolge sortiert. Ist Selectionsort auch ein instabiles Sortierverfahren, oder müssen die Datensätze mit gleichem Schlüsselwort in zufälliger Reihenfolg sortiert sein, damit es ein instabiles Verfahren ist? Oh je, so viel Text für zwei simple Fragen, sorry! Wenn ich etwas ungeschickt ausgedrückt habe, dann korrigiert das bitte, für die Prüfung brauch ich ein bisschen Fachsprache :) Ich hoffe, ich hab euch nicht zu sehr zugetextet! Vielen Dank für euer Interesse an diesem Thema und hoffentlich auch vielen Dank für eure Antworten!! Liebe Grüße, Michelle |
AW: Zufallszahlen / Sortierverfahren
1.
Bei Fragen könnte man doch auch mal die Suchfunktion nutzen oder in der OH nachlesen? ![]() ![]() dann findet man z.B. sowas ![]() ![]() ![]() ![]() ![]() Wobei du die Lösung doch schon gesagt hast Zitat:
Dieser "errrechnet" eine Folge von Zahlen und wenn man das nicht initialisiert, dann startet es "immer" mit dem Selben Wert und liefert dann auch die selben Zahlenfolgen. > siehe ![]() Aber bevor das jetzt wer für Verschlüsselungen o.Ä. nutzen will, dann sollte er/sie auch mal da oben reinlesen, denn es kann gut sein, daß irgendwann mal die Berechnung und damit auch die Zahlenfolgen geändert werden. 2: Bei nichtstabilen Sortierverfahren bleibt (eventuell) die Reihenvolge gleicher Einträge nicht gleich. Einträge mit dem selben Wert sind dann sortiert schonmal in einer anderen Reihenfolge, wie sie vor der Sortierung standen. Bei stabilen Verfahren bleibt ihre Reihenfolge gleich. |
AW: Zufallszahlen / Sortierverfahren
1. Wie genau funktioniert das mit der Systemuhr? Ist mit System Delphi oder der PC (das Betriebssystem) gemeint?
2. Wenn man weiß, dass das Sortierverfahren die Datensätze mit gleichem Schlüsselwort in genau umgekehrter Reihenfolge sortiert, ist es dann stabil oder instabil? 3. Vielen Dank für die Antwort :) |
AW: Zufallszahlen / Sortierverfahren
Hallo Michelle,
warum bemühst Du nicht die Wikipedia? Zitat:
![]() Was nicht stabil ist..... Gruß K-H |
AW: Zufallszahlen / Sortierverfahren
1: Früher (also z.B. noch in Delphi 7) wurde
![]() aber aktuell wird ![]() Grund: Aus Sicht des Randomize-Aufrufs ist dieses schon ein Zufallswert, welcher zur Initialisierung des Pfeudizufallsgenerators genutzt wird, da es sehr unwahrscheinlich ist, daß dieses immer genau zur selben Zeit, nach dem Booten des Rechners, aufgerufen wird. QueryPerformanceCounter wird nun bestimmt vorallem wegen der Idioten genutzt, welche Randomize zu oft aufrufen. :stupid: |
AW: Zufallszahlen / Sortierverfahren
Hallo!
Wikipedia hatte ich schon bemüht, bevor ich die Frage gestellt. Beim Lesen von dem Artikel ist bei mir die Frage ja erst entstanden. Beim Beispiel von Wiki klang es so, als müsste die Reihenfolge hinterher zufällig sein. Ich habe ein Sortierverfahren, was genau die umgekehrte Reihenfolge liefert. Stabil ist es insofern, als das ich weiß, in welcher Reihenfolge es rauskommt. Instabil ist es insofern, als das die Reihenfolge vorher und hinterher nicht die selbe ist. Ist es jetzt stabil oder instabil (oder halbstabil)? |
AW: Zufallszahlen / Sortierverfahren
Es ist nicht stabil.
Gruß K-H |
AW: Zufallszahlen / Sortierverfahren
Dankeschöön :thumb:
|
AW: Zufallszahlen / Sortierverfahren
Zitat:
|
AW: Zufallszahlen / Sortierverfahren
Zitat:
Siehe auch ![]() |
AW: Zufallszahlen / Sortierverfahren
Zitat:
Martin Schmidt Adam Schmidt Martina Abel Wenn du jetzt nach Nachname sortierst, ist es irrelevant, dass Adam vor Martin kommen würde. Denn danach wird nicht sortiert. Wenn das Suchverfahren stabil ist, belässt es die beiden Einträge in der Reihenfolge, denn da die Nachnamen gleich sind, müssen diese nicht in der Reihenfolge verändert werden. Ein instabiles Sortierverfahren garantiert nicht, dass diese beiden Einträge danach in der selben Reihenfolge sind, da dort auch Einträge mit gleichen Sortierschlüsseln (in diesem Fall Schmidt als Nachname) ausgetauscht werden können (können, nicht müssen). |
AW: Zufallszahlen / Sortierverfahren
Auf alle Fälle auf die wohl Eingangsfrage des Fremdprüfers antworten können, was der Unterschied zwischen numerischer und alphanumerischer Sortierung ist. :wink:
1 2 3 4 5 6 7 1 10 100 11 12 13 2 20 |
AW: Zufallszahlen / Sortierverfahren
Wenn mit den zu sortierenden Daten noch weitere Daten verknüpft sind, wie z.B. irgendwelche Objekte oder Sonstwas,
dann kann es schon relevant sein, daß diese Zusatzdaten in einer gewissen Reihenfolge verbleiben, wenn ihre ihre zugeordneten Sortierdaten den gleichen Wert haben. |
AW: Zufallszahlen / Sortierverfahren
Folgende Daten sind zu sortieren:
Muller, albert 043134 Müller, alfred 012345 Müller, alfred 043134 Müller, Monika 043134 Müller, Xaver 012345 Sortierschlüssel ist die PLZ Müller, alfred 012345 Müller, Xaver 012345 Muller, albert 043134 Müller, alfred 043134 Müller, Monika 043134 Das ist vor allem interessant wenn mehrere Sortierläufe nacheinander gebraucht werden. (man kann natürlich auch den Schlüssel entsprechend wählen, aber bei großen datenmengen ist es schon hilfreich) Gruß K-H |
AW: Zufallszahlen / Sortierverfahren
Zitat:
Hallo jaenicke, check ich au nicht. Würde das nicht bedeuten, daß der Operator unzuverlässig arbeitet? entweder ich möchte es
Delphi-Quellcode:
oder so
for I:= 0 to Count-2 do
for J:= I+1 to Count-1 do if Item[I] > Item[J] then Exchange(I, J);
Delphi-Quellcode:
for I:= 0 to Count-2 do
for J:= I+1 to Count-1 do if Item[I] >= Item[J] then Exchange(I, J); |
AW: Zufallszahlen / Sortierverfahren
Nein, würde es nicht.
Es kommt darauf an, in welcher Reihenfolge die Items verglichen und wie sie umgruppiert werden. Es hängt also vom Zugriffsmuster und der Vergleichsauswertung des Sortierverfahrens ab ... darum sind auch Einige stabil und Andere nicht. |
AW: Zufallszahlen / Sortierverfahren
Zitat:
|
AW: Zufallszahlen / Sortierverfahren
Wir haben eine Artikelliste mit folgenden Spalten
Code:
und diese möchte ich auch in der Reihenfolge sortiert haben.
Warenhauptgruppe
Warenuntergruppe Lieferant Artikelnummer Ein instabiles Sortierverfahren müsste jetzt alle 4 Kriterien gleichzeitig berücksichtigen um die gewünschte Sortierung herzustellen. Bei einem stabilen Sortierverfahren sortiert man die Felder in umgekehrter Reihenfolge. Also erst mal nach den Artikelnummern, dann Lieferant, Warenuntergruppe, Warenhauptgruppe. (z.B. in Excel werkelt so ein stabiles Sortierverfahren) Meine Vermutung (so aus der Hüfte geschossen): Ein stabiles Sortierverfahren ist aufwendiger in der Programmierung, langsamer in der Ausführung, aber in der Handhabung einfacher als das instabile Sortierverfahren. |
AW: Zufallszahlen / Sortierverfahren
Zitat:
![]() |
AW: Zufallszahlen / Sortierverfahren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 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 by Thomas Breitkreuz