diff --git a/schoeffelbe/pr03.py b/schoeffelbe/pr03.py index 35f390d..1fc460a 100644 --- a/schoeffelbe/pr03.py +++ b/schoeffelbe/pr03.py @@ -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. # At least this helped fix weird issue - pivotValue : Literal = Literal(arr[h].value) + pivotValue : Literal = arr[h] i : MemoryCell = MemoryCell(l.pred()) 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 swap(arr, int(i), int(j)) - swap(arr, int(i.succ()), int(h)) + swap(arr, i.succ().value, h.value) return i.succ() def LEGACY_quickSort(z: MemoryArray, l: Literal = Literal(0), r: Literal = Literal(-1), mode=0): @@ -185,6 +185,6 @@ if __name__ == '__main__': print(filename) toSort = MemoryArray.create_array_from_file(filename) 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.")