Lecture 3
This commit is contained in:
1 parent
5ec825647c
commit
2790f31141
4 files changed
+1038
-3
No files matched your search
@@ -329,6 +329,12 @@ def read_int_sequence(filename: str) -> AlgoDatArray:
|
||||
a[i].value = l[i]
|
||||
return a
|
||||
|
||||
def write_int_sequence(z: AlgoDatArray, filename: str):
|
||||
with open(filename, "w") as file:
|
||||
for i in range(len(z)):
|
||||
file.write(str(z[i].value)+ '\n')
|
||||
|
||||
|
||||
def read_int_sequence_limited(filename: str, limit: int) -> AlgoDatArray:
|
||||
"""Reads a sequence of integers from a file and returns an AlgoDatArray object."""
|
||||
with open(filename, "r") as file:
|
||||
|
||||
@@ -6,8 +6,8 @@ import quick_sort as qs
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
filename = "../../seq3.txt"
|
||||
dummy = read_int_sequence("../../seq3.txt")
|
||||
filename = "../../seq3_sorted.txt"
|
||||
dummy = read_int_sequence(filename)
|
||||
n = len(dummy)
|
||||
step = n // 100
|
||||
|
||||
|
||||
@@ -21,16 +21,45 @@ 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]:
|
||||
if z[mid] < z[right]:
|
||||
# right is the largest
|
||||
if z[mid] < z[left]:
|
||||
# left is in the middle
|
||||
z[left], z[right] = z[right], z[left]
|
||||
else:
|
||||
# mid is in the middle
|
||||
z[mid], z[right] = z[right], z[mid]
|
||||
else:
|
||||
# right is in the middle
|
||||
pass
|
||||
else:
|
||||
if z[mid] < z[right]:
|
||||
# right is in the middle
|
||||
pass
|
||||
else:
|
||||
#right is the smallest
|
||||
if z[mid] < z[left]:
|
||||
# mid is in the middle
|
||||
z[mid], z[right] = z[right], z[mid]
|
||||
else:
|
||||
# mid is in the middle
|
||||
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)
|
||||
#q = median_pivot(z, left, right)
|
||||
quick_sort(z, left, q-1)
|
||||
quick_sort(z, q+1, right)
|
||||
|
||||
pivot = AlgoDatValue(0)
|
||||
|
||||
if __name__ == "__main__":
|
||||
z = read_int_sequence("../../seq0.txt")
|
||||
z = read_int_sequence("../../seq3.txt")
|
||||
print(z, len(z))
|
||||
start = pfc()
|
||||
quick_sort(z, 0, z.size-1)
|
||||
|
||||
+1000
@@ -0,0 +1,1000 @@
|
||||
-99
|
||||
-99
|
||||
-99
|
||||
-99
|
||||
-99
|
||||
-99
|
||||
-99
|
||||
-99
|
||||
-99
|
||||
-99
|
||||
-99
|
||||
-98
|
||||
-98
|
||||
-98
|
||||
-98
|
||||
-98
|
||||
-98
|
||||
-98
|
||||
-98
|
||||
-98
|
||||
-98
|
||||
-98
|
||||
-98
|
||||
-98
|
||||
-97
|
||||
-97
|
||||
-97
|
||||
-97
|
||||
-97
|
||||
-96
|
||||
-96
|
||||
-96
|
||||
-96
|
||||
-96
|
||||
-96
|
||||
-96
|
||||
-96
|
||||
-96
|
||||
-96
|
||||
-96
|
||||
-96
|
||||
-95
|
||||
-95
|
||||
-95
|
||||
-95
|
||||
-95
|
||||
-95
|
||||
-95
|
||||
-95
|
||||
-95
|
||||
-95
|
||||
-95
|
||||
-94
|
||||
-94
|
||||
-94
|
||||
-94
|
||||
-94
|
||||
-94
|
||||
-94
|
||||
-94
|
||||
-94
|
||||
-94
|
||||
-94
|
||||
-93
|
||||
-93
|
||||
-93
|
||||
-93
|
||||
-93
|
||||
-93
|
||||
-93
|
||||
-93
|
||||
-92
|
||||
-92
|
||||
-92
|
||||
-92
|
||||
-92
|
||||
-92
|
||||
-92
|
||||
-92
|
||||
-92
|
||||
-92
|
||||
-92
|
||||
-92
|
||||
-92
|
||||
-92
|
||||
-92
|
||||
-91
|
||||
-91
|
||||
-91
|
||||
-91
|
||||
-91
|
||||
-91
|
||||
-91
|
||||
-91
|
||||
-91
|
||||
-90
|
||||
-90
|
||||
-90
|
||||
-90
|
||||
-90
|
||||
-90
|
||||
-90
|
||||
-90
|
||||
-90
|
||||
-90
|
||||
-90
|
||||
-89
|
||||
-89
|
||||
-89
|
||||
-89
|
||||
-89
|
||||
-89
|
||||
-89
|
||||
-89
|
||||
-89
|
||||
-89
|
||||
-89
|
||||
-89
|
||||
-89
|
||||
-89
|
||||
-89
|
||||
-89
|
||||
-88
|
||||
-88
|
||||
-88
|
||||
-88
|
||||
-88
|
||||
-88
|
||||
-87
|
||||
-87
|
||||
-87
|
||||
-87
|
||||
-87
|
||||
-87
|
||||
-87
|
||||
-87
|
||||
-87
|
||||
-86
|
||||
-86
|
||||
-86
|
||||
-86
|
||||
-86
|
||||
-86
|
||||
-86
|
||||
-86
|
||||
-86
|
||||
-86
|
||||
-86
|
||||
-85
|
||||
-85
|
||||
-85
|
||||
-85
|
||||
-84
|
||||
-84
|
||||
-84
|
||||
-84
|
||||
-84
|
||||
-84
|
||||
-84
|
||||
-84
|
||||
-84
|
||||
-84
|
||||
-83
|
||||
-83
|
||||
-83
|
||||
-83
|
||||
-83
|
||||
-83
|
||||
-83
|
||||
-83
|
||||
-83
|
||||
-82
|
||||
-82
|
||||
-82
|
||||
-82
|
||||
-82
|
||||
-82
|
||||
-82
|
||||
-82
|
||||
-82
|
||||
-82
|
||||
-82
|
||||
-82
|
||||
-81
|
||||
-81
|
||||
-81
|
||||
-81
|
||||
-81
|
||||
-81
|
||||
-81
|
||||
-81
|
||||
-81
|
||||
-81
|
||||
-81
|
||||
-81
|
||||
-80
|
||||
-80
|
||||
-80
|
||||
-80
|
||||
-80
|
||||
-79
|
||||
-79
|
||||
-79
|
||||
-79
|
||||
-79
|
||||
-79
|
||||
-79
|
||||
-79
|
||||
-79
|
||||
-79
|
||||
-79
|
||||
-78
|
||||
-78
|
||||
-78
|
||||
-78
|
||||
-78
|
||||
-78
|
||||
-78
|
||||
-78
|
||||
-78
|
||||
-78
|
||||
-77
|
||||
-77
|
||||
-77
|
||||
-77
|
||||
-77
|
||||
-77
|
||||
-77
|
||||
-77
|
||||
-77
|
||||
-77
|
||||
-77
|
||||
-77
|
||||
-77
|
||||
-77
|
||||
-77
|
||||
-76
|
||||
-76
|
||||
-76
|
||||
-76
|
||||
-76
|
||||
-76
|
||||
-76
|
||||
-76
|
||||
-76
|
||||
-76
|
||||
-75
|
||||
-75
|
||||
-75
|
||||
-75
|
||||
-75
|
||||
-75
|
||||
-75
|
||||
-75
|
||||
-75
|
||||
-75
|
||||
-75
|
||||
-75
|
||||
-75
|
||||
-75
|
||||
-74
|
||||
-74
|
||||
-74
|
||||
-74
|
||||
-74
|
||||
-74
|
||||
-74
|
||||
-74
|
||||
-74
|
||||
-74
|
||||
-74
|
||||
-74
|
||||
-74
|
||||
-74
|
||||
-74
|
||||
-74
|
||||
-74
|
||||
-73
|
||||
-73
|
||||
-73
|
||||
-73
|
||||
-73
|
||||
-73
|
||||
-73
|
||||
-73
|
||||
-73
|
||||
-72
|
||||
-72
|
||||
-72
|
||||
-72
|
||||
-72
|
||||
-72
|
||||
-71
|
||||
-71
|
||||
-71
|
||||
-71
|
||||
-71
|
||||
-71
|
||||
-71
|
||||
-71
|
||||
-71
|
||||
-71
|
||||
-71
|
||||
-70
|
||||
-70
|
||||
-70
|
||||
-70
|
||||
-70
|
||||
-70
|
||||
-70
|
||||
-70
|
||||
-70
|
||||
-69
|
||||
-69
|
||||
-69
|
||||
-69
|
||||
-69
|
||||
-69
|
||||
-69
|
||||
-69
|
||||
-69
|
||||
-69
|
||||
-69
|
||||
-69
|
||||
-68
|
||||
-68
|
||||
-68
|
||||
-68
|
||||
-68
|
||||
-68
|
||||
-68
|
||||
-67
|
||||
-67
|
||||
-67
|
||||
-67
|
||||
-67
|
||||
-67
|
||||
-67
|
||||
-66
|
||||
-66
|
||||
-66
|
||||
-66
|
||||
-66
|
||||
-66
|
||||
-66
|
||||
-66
|
||||
-66
|
||||
-65
|
||||
-65
|
||||
-65
|
||||
-65
|
||||
-65
|
||||
-64
|
||||
-64
|
||||
-64
|
||||
-64
|
||||
-64
|
||||
-64
|
||||
-64
|
||||
-64
|
||||
-64
|
||||
-64
|
||||
-63
|
||||
-63
|
||||
-63
|
||||
-63
|
||||
-63
|
||||
-63
|
||||
-63
|
||||
-63
|
||||
-63
|
||||
-63
|
||||
-63
|
||||
-62
|
||||
-62
|
||||
-62
|
||||
-62
|
||||
-62
|
||||
-62
|
||||
-62
|
||||
-61
|
||||
-61
|
||||
-61
|
||||
-61
|
||||
-61
|
||||
-61
|
||||
-61
|
||||
-61
|
||||
-60
|
||||
-60
|
||||
-60
|
||||
-60
|
||||
-60
|
||||
-60
|
||||
-60
|
||||
-60
|
||||
-60
|
||||
-60
|
||||
-60
|
||||
-60
|
||||
-60
|
||||
-60
|
||||
-60
|
||||
-60
|
||||
-60
|
||||
-60
|
||||
-59
|
||||
-59
|
||||
-59
|
||||
-59
|
||||
-59
|
||||
-59
|
||||
-59
|
||||
-59
|
||||
-59
|
||||
-58
|
||||
-58
|
||||
-58
|
||||
-58
|
||||
-58
|
||||
-58
|
||||
-58
|
||||
-58
|
||||
-58
|
||||
-57
|
||||
-57
|
||||
-57
|
||||
-57
|
||||
-57
|
||||
-57
|
||||
-57
|
||||
-57
|
||||
-57
|
||||
-57
|
||||
-57
|
||||
-56
|
||||
-56
|
||||
-56
|
||||
-56
|
||||
-56
|
||||
-56
|
||||
-56
|
||||
-56
|
||||
-56
|
||||
-56
|
||||
-55
|
||||
-55
|
||||
-55
|
||||
-55
|
||||
-55
|
||||
-55
|
||||
-55
|
||||
-55
|
||||
-55
|
||||
-55
|
||||
-54
|
||||
-54
|
||||
-54
|
||||
-54
|
||||
-54
|
||||
-54
|
||||
-54
|
||||
-54
|
||||
-54
|
||||
-54
|
||||
-54
|
||||
-54
|
||||
-53
|
||||
-53
|
||||
-53
|
||||
-53
|
||||
-53
|
||||
-53
|
||||
-53
|
||||
-53
|
||||
-52
|
||||
-52
|
||||
-52
|
||||
-52
|
||||
-52
|
||||
-51
|
||||
-51
|
||||
-51
|
||||
-50
|
||||
-50
|
||||
-50
|
||||
-50
|
||||
-50
|
||||
-50
|
||||
-50
|
||||
-50
|
||||
-50
|
||||
-50
|
||||
-50
|
||||
-50
|
||||
-50
|
||||
-50
|
||||
-50
|
||||
-50
|
||||
-49
|
||||
-49
|
||||
-49
|
||||
-49
|
||||
-49
|
||||
-49
|
||||
-49
|
||||
-49
|
||||
-49
|
||||
-49
|
||||
-49
|
||||
-48
|
||||
-48
|
||||
-48
|
||||
-48
|
||||
-48
|
||||
-48
|
||||
-48
|
||||
-48
|
||||
-48
|
||||
-48
|
||||
-48
|
||||
-48
|
||||
-48
|
||||
-48
|
||||
-48
|
||||
-48
|
||||
-48
|
||||
-48
|
||||
-48
|
||||
-48
|
||||
-47
|
||||
-47
|
||||
-47
|
||||
-47
|
||||
-47
|
||||
-47
|
||||
-47
|
||||
-47
|
||||
-47
|
||||
-47
|
||||
-47
|
||||
-47
|
||||
-47
|
||||
-47
|
||||
-47
|
||||
-46
|
||||
-46
|
||||
-46
|
||||
-46
|
||||
-46
|
||||
-46
|
||||
-46
|
||||
-46
|
||||
-46
|
||||
-46
|
||||
-46
|
||||
-46
|
||||
-45
|
||||
-45
|
||||
-45
|
||||
-45
|
||||
-45
|
||||
-45
|
||||
-45
|
||||
-45
|
||||
-45
|
||||
-45
|
||||
-45
|
||||
-45
|
||||
-44
|
||||
-44
|
||||
-44
|
||||
-44
|
||||
-44
|
||||
-44
|
||||
-44
|
||||
-44
|
||||
-44
|
||||
-44
|
||||
-44
|
||||
-43
|
||||
-43
|
||||
-43
|
||||
-43
|
||||
-43
|
||||
-43
|
||||
-43
|
||||
-43
|
||||
-43
|
||||
-43
|
||||
-43
|
||||
-43
|
||||
-42
|
||||
-42
|
||||
-42
|
||||
-42
|
||||
-42
|
||||
-42
|
||||
-42
|
||||
-42
|
||||
-42
|
||||
-42
|
||||
-41
|
||||
-41
|
||||
-41
|
||||
-41
|
||||
-40
|
||||
-40
|
||||
-40
|
||||
-40
|
||||
-40
|
||||
-40
|
||||
-40
|
||||
-40
|
||||
-40
|
||||
-39
|
||||
-39
|
||||
-39
|
||||
-39
|
||||
-39
|
||||
-39
|
||||
-39
|
||||
-39
|
||||
-39
|
||||
-39
|
||||
-39
|
||||
-39
|
||||
-39
|
||||
-39
|
||||
-39
|
||||
-38
|
||||
-38
|
||||
-38
|
||||
-38
|
||||
-38
|
||||
-38
|
||||
-38
|
||||
-38
|
||||
-38
|
||||
-38
|
||||
-37
|
||||
-37
|
||||
-37
|
||||
-37
|
||||
-37
|
||||
-37
|
||||
-37
|
||||
-36
|
||||
-36
|
||||
-36
|
||||
-36
|
||||
-36
|
||||
-36
|
||||
-36
|
||||
-36
|
||||
-35
|
||||
-35
|
||||
-35
|
||||
-35
|
||||
-35
|
||||
-35
|
||||
-34
|
||||
-34
|
||||
-34
|
||||
-34
|
||||
-34
|
||||
-33
|
||||
-33
|
||||
-33
|
||||
-33
|
||||
-33
|
||||
-33
|
||||
-33
|
||||
-32
|
||||
-32
|
||||
-32
|
||||
-32
|
||||
-32
|
||||
-32
|
||||
-32
|
||||
-32
|
||||
-32
|
||||
-32
|
||||
-32
|
||||
-32
|
||||
-31
|
||||
-31
|
||||
-31
|
||||
-31
|
||||
-31
|
||||
-31
|
||||
-31
|
||||
-31
|
||||
-31
|
||||
-31
|
||||
-31
|
||||
-30
|
||||
-30
|
||||
-30
|
||||
-30
|
||||
-30
|
||||
-30
|
||||
-30
|
||||
-30
|
||||
-30
|
||||
-30
|
||||
-30
|
||||
-30
|
||||
-29
|
||||
-29
|
||||
-29
|
||||
-29
|
||||
-29
|
||||
-29
|
||||
-29
|
||||
-29
|
||||
-29
|
||||
-29
|
||||
-28
|
||||
-28
|
||||
-28
|
||||
-28
|
||||
-28
|
||||
-28
|
||||
-28
|
||||
-28
|
||||
-28
|
||||
-28
|
||||
-27
|
||||
-27
|
||||
-27
|
||||
-27
|
||||
-27
|
||||
-27
|
||||
-27
|
||||
-27
|
||||
-27
|
||||
-27
|
||||
-27
|
||||
-27
|
||||
-26
|
||||
-26
|
||||
-26
|
||||
-26
|
||||
-26
|
||||
-26
|
||||
-26
|
||||
-26
|
||||
-26
|
||||
-25
|
||||
-25
|
||||
-25
|
||||
-25
|
||||
-25
|
||||
-25
|
||||
-25
|
||||
-25
|
||||
-24
|
||||
-24
|
||||
-24
|
||||
-24
|
||||
-24
|
||||
-24
|
||||
-24
|
||||
-24
|
||||
-24
|
||||
-24
|
||||
-23
|
||||
-23
|
||||
-23
|
||||
-23
|
||||
-23
|
||||
-23
|
||||
-23
|
||||
-23
|
||||
-23
|
||||
-22
|
||||
-22
|
||||
-22
|
||||
-22
|
||||
-22
|
||||
-22
|
||||
-22
|
||||
-22
|
||||
-22
|
||||
-21
|
||||
-21
|
||||
-21
|
||||
-21
|
||||
-21
|
||||
-21
|
||||
-21
|
||||
-21
|
||||
-20
|
||||
-20
|
||||
-20
|
||||
-20
|
||||
-20
|
||||
-20
|
||||
-20
|
||||
-20
|
||||
-20
|
||||
-20
|
||||
-20
|
||||
-19
|
||||
-19
|
||||
-19
|
||||
-19
|
||||
-19
|
||||
-19
|
||||
-19
|
||||
-19
|
||||
-19
|
||||
-19
|
||||
-19
|
||||
-18
|
||||
-18
|
||||
-18
|
||||
-18
|
||||
-18
|
||||
-18
|
||||
-18
|
||||
-18
|
||||
-18
|
||||
-18
|
||||
-18
|
||||
-17
|
||||
-17
|
||||
-17
|
||||
-17
|
||||
-17
|
||||
-17
|
||||
-17
|
||||
-17
|
||||
-17
|
||||
-17
|
||||
-17
|
||||
-17
|
||||
-17
|
||||
-17
|
||||
-17
|
||||
-16
|
||||
-16
|
||||
-16
|
||||
-16
|
||||
-16
|
||||
-16
|
||||
-16
|
||||
-15
|
||||
-15
|
||||
-15
|
||||
-15
|
||||
-15
|
||||
-15
|
||||
-15
|
||||
-15
|
||||
-15
|
||||
-15
|
||||
-15
|
||||
-14
|
||||
-14
|
||||
-14
|
||||
-14
|
||||
-14
|
||||
-14
|
||||
-14
|
||||
-14
|
||||
-14
|
||||
-14
|
||||
-14
|
||||
-14
|
||||
-14
|
||||
-13
|
||||
-13
|
||||
-13
|
||||
-13
|
||||
-13
|
||||
-13
|
||||
-13
|
||||
-12
|
||||
-12
|
||||
-12
|
||||
-12
|
||||
-12
|
||||
-11
|
||||
-11
|
||||
-11
|
||||
-11
|
||||
-11
|
||||
-11
|
||||
-11
|
||||
-11
|
||||
-11
|
||||
-10
|
||||
-10
|
||||
-10
|
||||
-10
|
||||
-10
|
||||
-10
|
||||
-10
|
||||
-10
|
||||
-10
|
||||
-10
|
||||
-10
|
||||
-10
|
||||
-10
|
||||
-10
|
||||
-10
|
||||
-10
|
||||
-9
|
||||
-9
|
||||
-9
|
||||
-9
|
||||
-9
|
||||
-9
|
||||
-9
|
||||
-9
|
||||
-9
|
||||
-8
|
||||
-8
|
||||
-8
|
||||
-8
|
||||
-8
|
||||
-8
|
||||
-8
|
||||
-8
|
||||
-8
|
||||
-8
|
||||
-8
|
||||
-8
|
||||
-8
|
||||
-8
|
||||
-7
|
||||
-7
|
||||
-7
|
||||
-7
|
||||
-7
|
||||
-7
|
||||
-7
|
||||
-7
|
||||
-7
|
||||
-7
|
||||
-7
|
||||
-7
|
||||
-7
|
||||
-7
|
||||
-7
|
||||
-6
|
||||
-6
|
||||
-6
|
||||
-6
|
||||
-6
|
||||
-6
|
||||
-6
|
||||
-6
|
||||
-6
|
||||
-6
|
||||
-6
|
||||
-6
|
||||
-6
|
||||
-6
|
||||
-5
|
||||
-5
|
||||
-5
|
||||
-5
|
||||
-5
|
||||
-5
|
||||
-5
|
||||
-5
|
||||
-4
|
||||
-4
|
||||
-4
|
||||
-4
|
||||
-4
|
||||
-4
|
||||
-4
|
||||
-4
|
||||
-3
|
||||
-3
|
||||
-3
|
||||
-2
|
||||
-2
|
||||
-2
|
||||
-2
|
||||
-2
|
||||
-2
|
||||
-2
|
||||
-2
|
||||
-2
|
||||
-2
|
||||
-2
|
||||
-2
|
||||
-1
|
||||
-1
|
||||
-1
|
||||
-1
|
||||
-1
|
||||
-1
|
||||
-1
|
||||
-1
|
||||
Reference in new issue
Block a user