Ich habe den folgenden Code für randomisierten Quicksort geschrieben. Dadurch wird ein zufälliges indiziertes Element als Pivot_item in der Partitionsfunktion ausgewählt. Immer wenn ich den Code ausführe, wird p nur als 0 oder 1 gesetzt und nicht alle Indizes von 0 bis n-1 mögen es sein. Sie können dies überprüfen, indem Sie entfernen COMMENT 1
Warum passiert das und wie kann ich das beheben?Randomized Quick Sort
Auch das Array wird nur nach dem Index 1 richtig sortiert, wie Sie in der Ausgabe sehen können. Warum ist das und wie kann ich das beheben?
Mein letztes Problem ist, dass egal wie oft ich das Programm ausführen, bekomme ich die gleichen Elemente im Array zu Beginn mit. Soll nicht rand() jedes Mal neue Zufallszahlen generieren? Also, warum bekomme ich jedes Mal das selbe Array sortiert? Wie kann ich das beheben?
Mein Code:
Ausgang:
59
55
0
2
6
2
7
7
2
9
9
9
8
1
11
12
18
16
29
23
19
16
13
22
27
27
30
31
29
33
37
21
38
42
35
42
43
44
44
46
46
46
50
50
43
52
55
55
53
57
warum nicht ** rand()% (hoch - niedrig) **? –