ich habe ein kleines Problem mit meinem Programm.
Ich soll einen Merge-Sort-Algorithmus programmieren, der die Anzahl der durchgeführten Vergleiche ausgibt und die sortierte Liste.
Ich kriege aber bei meiner Programmierung lediglich die Zufallsliste ausgespuckt...wenn ich "print Ergebnis" eingebe, dann gibt er mir gar nichts aus.
Was muss ich da verbessern, dass das gewünschte geliefert wird?
(Bitte einfache Erklärungen bzw Hinweise, da ich mit Python und allgemein mit Programmieren nicht wirklich vertraut bin.)
...außerdem lautet die Aufgabe weiter:
"Führen Sie damit eine (größere) Anzahl Sortierungen von verschiedenen Feldern gleicher Größe durch! Bestimmen Sie die Anzahl der durchschnittlich notwendigen Tausch-Aktionen, die geringste Anzahl sowie die größte Anzahl notwendiger Tausch-Aktionen!"
...wie würde man dies realisieren können?
Danke schon mal im Voraus für jede Hilfe.!!!
Mein bisheriges Programm:
___
Code: Alles auswählen
import random
a=input("Range untere Grenze: ")
b=input("Range obere Grenze (ausschließlich: ")
c=input("Anzahl der Zufallszahlen: ")
z=random.sample(range(a,b),c)
zaehler = 0
def mergesort(z):
if len(z)==1:
return z
else:
m=len(z)/2
l=mergesort(z[:m])
r=mergesort(z[m:])
return mergesort(l,r)
def merge(l,r):
global zaehler
Ergebnis=[]
while len(l)>0 and len(r)>0:
if l[0] < r[0]:
Ergebnis.append(l.pop(0))
else:
Ergebnis.append(r.pop(0))
zaehler=zaehler+1
Ergebnis.extend(l)
Ergebnis.extend(r)
return Ergebnis
print z
print zaehler