Sortieren
Aus ProgrammingWiki
< EGE
Inhaltsverzeichnis |
Sortieren durch Einfügen
def insertionSort(liste):
for i in range(1, len(liste)): # Fängt bei 1. (nicht 0.) Element an
merke = liste[i] # merkt sich den Eintrag
j=i
while j>0 and merke<liste[j-1]: # vom i-ten Element an rueckwaerts... [2: bis das gemerkte Element schon das Kleinste ist]
liste[j] = liste[j-1] # ...jedes Element um eins vorruecken
j-=1 # bis [2]
liste[j]=merke # gemerktes Element an der Stelle einfuegen
Sortieren durch Auswählen (Minimumsuche)
def selectionSort(liste):
for i in range(0, len(liste)-1):
mini=i # Minimum-Stelle erst mal auf das 0. Element (später 1., 2. ...) festlegen
for j in range(i+1, len(liste)): # Nachfolgende Einträge der Liste durchsuchen
if liste[j]< liste[mini]: # falls das aktuelle Element größer als das bisherige Minimum ist, ...
mini=j # ... wird die Minimum-Stelle überschrieben
# Tausch der Listeneinträge:
hilf=liste[mini]
liste[mini]=liste[i]
liste[i]=hilf
Sortieren durch Austauschen (Bubblesort)
def bubbleSort(liste):
for i in range(0, len(liste) - 1):
for j in range(0, len(liste) - i - 1):
if liste[j] > liste[j + 1]:
hilf = liste[j]
liste[j] = liste[j+1]
liste[j+1] = hilf
Quicksort
def quick(liste):
if liste==[]:
return []
else:
grenze = liste[0]
li1=[]
li2=[]
for i in range(1,len(liste)):
if liste[i]<grenze:
li1.append(liste[i])
else:
li2.append(liste[i])
return quick(li1) + [grenze] + quick(li2)