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)