Informatik10/algorithmen/shakersort.py

32 lines
967 B
Python

l = [12,124,1,31,51,4563,76,43,532,7,98,786,63,68,2,15,764,345,2,7,85]
l2 = [1235,999,432,123, 12, 5, 70]
def shakersort(unsorted):
start = 0
end = len(unsorted) - 1 # last possible index of list
exchanged = True
while exchanged and (end >= start):
exchanged = False
# Durchlauf vorwärts
for i in range(start, end, 1):
if unsorted[i] > unsorted[i + 1]:
# Vertausche!
unsorted[i], unsorted[i + 1] = unsorted[i + 1], unsorted[i]
exchanged = True
print(unsorted)
# Durchlauf rückwärts
for j in range(end, start, -1):
if unsorted[j] < unsorted[j - 1]:
# Vertausche!
unsorted[j - 1], unsorted[j] = unsorted[j], unsorted[j - 1]
exchanged = True
print(unsorted)
end = end - 1
start = start + 1
print(str(l2) + " # unsortiert")
shakersort(l2)