EGE/Sortieren

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

== 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)