Sortieren

Aus ProgrammingWiki

< EGE
Wechseln zu: Navigation, Suche

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)
Persönliche Werkzeuge