Cleaned up pr03

This commit is contained in:
Bernhard Schoeffel 2025-04-13 19:03:06 +02:00
parent 2bcd77f9ec
commit 2af96a1b4e

View File

@ -107,7 +107,7 @@ def partitionIterative(arr : MemoryArray, l : Literal, h : Literal, mode=0):
# Carefull that we do not use a reference. I suppose python would return one here if we just assign without value>Literal cast. # Carefull that we do not use a reference. I suppose python would return one here if we just assign without value>Literal cast.
# At least this helped fix weird issue # At least this helped fix weird issue
pivotValue : Literal = Literal(arr[h].value) pivotValue : Literal = arr[h]
i : MemoryCell = MemoryCell(l.pred()) i : MemoryCell = MemoryCell(l.pred())
for j in mrange(l, h): for j in mrange(l, h):
@ -115,7 +115,7 @@ def partitionIterative(arr : MemoryArray, l : Literal, h : Literal, mode=0):
i += Literal(1) # increment index of smaller element i += Literal(1) # increment index of smaller element
swap(arr, int(i), int(j)) swap(arr, int(i), int(j))
swap(arr, int(i.succ()), int(h)) swap(arr, i.succ().value, h.value)
return i.succ() return i.succ()
def LEGACY_quickSort(z: MemoryArray, l: Literal = Literal(0), r: Literal = Literal(-1), mode=0): def LEGACY_quickSort(z: MemoryArray, l: Literal = Literal(0), r: Literal = Literal(-1), mode=0):
@ -185,6 +185,6 @@ if __name__ == '__main__':
print(filename) print(filename)
toSort = MemoryArray.create_array_from_file(filename) toSort = MemoryArray.create_array_from_file(filename)
timeMS(quickSortIterative, toSort, Literal(0), toSort.length().pred(), mode=1) timeMS(quickSortIterative, toSort, Literal(0), toSort.length().pred(), mode=1)
# print(toSort) print(toSort)
print("Kann durch die Modifikation eine besser Laufzeit als nlog(n) erreicht werden? Nein! nlog(n) ist das Minimum. Durch die Änderung kann aber der Worst-Case fall von n^2 für z.B. bereits vorsortierte Arrays oder Arrays mit vielen Duplikaten vermieden werden.") print("Kann durch die Modifikation eine besser Laufzeit als nlog(n) erreicht werden? Nein! nlog(n) ist das Minimum. Durch die Änderung kann aber der Worst-Case fall von n^2 für z.B. bereits vorsortierte Arrays oder Arrays mit vielen Duplikaten vermieden werden.")