32 lines
967 B
Python
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)
|
|
|