33 lines
942 B
Python
33 lines
942 B
Python
# Ich möchte ein Quicksort-Algorithmus implementieren, der eine Liste von Zahlen sortiert.
|
|
# Der Algorithmus wählt ein Pivot-Element aus der Liste und teilt die anderen Elemente in drei Listen auf:
|
|
# diejenigen, die kleiner als das Pivot sind, diejenigen, die gleich dem Pivot sind, und diejenigen, die größer als das Pivot sind.
|
|
# Dann wird der Algorithmus rekursiv auf die kleineren und größeren Listen angewendet.
|
|
|
|
Array = [7,2,9,4,1,8,3,6,5,0]
|
|
|
|
def quicksort(Array):
|
|
Pivot = Array[0]
|
|
links = []
|
|
rechts = []
|
|
gleich = []
|
|
for i in range(len(Array)):
|
|
if i < Pivot:
|
|
links.append(i)
|
|
elif i > Pivot:
|
|
rechts.append(i)
|
|
else:
|
|
gleich.append(i)
|
|
if len(links) > 1:
|
|
quicksort(links)
|
|
if len(rechts) > 1:
|
|
quicksort(rechts)
|
|
return links + gleich + rechts
|
|
|
|
|
|
|
|
|
|
print(quicksort(Array))
|
|
|
|
|
|
|