This commit is contained in:
Oliver Hofmann 2024-04-23 12:34:41 +02:00
parent 2790f31141
commit 8ab7c0a835
2 changed files with 7 additions and 5 deletions

View File

@ -2,11 +2,9 @@ from SoSe24.algodat.foundation import AlgoDatArray, AlgoDatValue, read_int_seque
import matplotlib.pyplot as plt
import quick_sort as qs
if __name__ == "__main__":
filename = "../../seq3_sorted.txt"
filename = "../../seq3.txt"
#filename = "../../seq3_sorted.txt"
dummy = read_int_sequence(filename)
n = len(dummy)
step = n // 100

View File

@ -1,9 +1,10 @@
from SoSe24.algodat.foundation import AlgoDatArray, AlgoDatValue, read_int_sequence
from time import perf_counter as pfc
def partition(z: AlgoDatArray, left: int, right: int) -> int:
global pivot
pivot.value = z[right]
pivot.value = z[right]
i = left
j = right - 1
while i < j:
@ -21,6 +22,7 @@ def partition(z: AlgoDatArray, left: int, right: int) -> int:
z[i], z[right] = z[right], z[i]
return i
def median_pivot(z: AlgoDatArray, left: int, right: int) -> int:
mid = left + (right - left) // 2
if z[left] < z[right]:
@ -49,6 +51,7 @@ def median_pivot(z: AlgoDatArray, left: int, right: int) -> int:
z[left], z[right] = z[right], z[left]
return partition(z, left, right)
def quick_sort(z: AlgoDatArray, left: int, right: int):
if left < right:
q = partition(z, left, right)
@ -56,6 +59,7 @@ def quick_sort(z: AlgoDatArray, left: int, right: int):
quick_sort(z, left, q-1)
quick_sort(z, q+1, right)
pivot = AlgoDatValue(0)
if __name__ == "__main__":