Skip to content

Commit 1733507

Browse files
committed
Working on merge sort. Issue in calculating mid.
1 parent 92ee8d9 commit 1733507

File tree

3 files changed

+92
-0
lines changed

3 files changed

+92
-0
lines changed

experiments/gup.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import os
2+
3+
my_string = "Hello, friends."
4+
5+
print(my_string[0:3])
6+
7+
print(my_string)
8+
9+
filepath = "new_file"
10+
11+
12+
out_file = open(filepath, "ab")
13+
14+
print(out_file.mode)
15+
print(out_file.name)
16+
17+
out_file.write(bytes("yo\n", "UTF-8"))
18+
19+
out_file.close()
20+
21+
os.remove(filepath)
22+
23+
# print(os.urandom(24))

merge_sort/main.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
from merge_sort import MergeSort
2+
3+
4+
def main():
5+
original = [325432, 989, 547510, 3]
6+
7+
#, 547510, 3, -93]
8+
9+
# -93, 189019, 5042, 123, 597, 42, 7506, 184,
10+
# 184, 2409, 45, 824, 4, -2650, 9, 662, 3928, -170, 45358, 395, 842,
11+
# 7697, 110, 14, 99, 221]
12+
13+
numbers = original[:]
14+
15+
ms = MergeSort(numbers)
16+
17+
output = ms.sort()
18+
19+
print(output)
20+
print("We're done here.")
21+
22+
if __name__ == "__main__":
23+
main()

merge_sort/merge_sort.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import math
2+
3+
4+
class MergeSort(object):
5+
def __init__(self, numbers):
6+
self.values = numbers
7+
self.count = len(numbers)
8+
9+
def sort(self):
10+
self.merge_sort(0, self.count - 1)
11+
return self.values
12+
13+
def merge_sort(self, low, high):
14+
if low < high:
15+
mid = you were here: (low + high) / 2
16+
self.merge_sort(low, mid)
17+
self.merge_sort(mid + 1, high)
18+
self.merge(low, mid, high)
19+
20+
def merge(self, low, mid, high):
21+
b = []
22+
i = 0
23+
j = mid + 1
24+
25+
m = 0
26+
27+
while i <= low and j <= high:
28+
if self.values[i] <= self.values[j]:
29+
b.append(self.values[i])
30+
i += 1
31+
else:
32+
b.append(self.values[j])
33+
j += 1
34+
35+
while i <= mid:
36+
b.append(self.values[i])
37+
i += 1
38+
39+
while j <= high:
40+
b.append(self.values[j])
41+
j += 1
42+
43+
for index, val in enumerate(b):
44+
self.values[low + index] = val
45+
46+
m += 1

0 commit comments

Comments
 (0)