File tree Expand file tree Collapse file tree 1 file changed +47
-0
lines changed Expand file tree Collapse file tree 1 file changed +47
-0
lines changed Original file line number Diff line number Diff line change
1
+ #!/usr/bin/env python
2
+
3
+ import random
4
+ from typing import List
5
+
6
+
7
+ def merge_sort (arr : List [int ]) -> List [int ]:
8
+ if len (arr ) <= 1 :
9
+ return arr
10
+ mid = len (arr ) // 2
11
+ left = merge_sort (arr [:mid ])
12
+ right = merge_sort (arr [mid :])
13
+ return merge (left , right )
14
+
15
+
16
+ def merge (left : List [int ], right : List [int ]) -> List [int ]:
17
+ merged = []
18
+ i = j = 0
19
+ while i < len (left ) and j < len (right ):
20
+ if left [i ] <= right [j ]:
21
+ merged .append (left [i ])
22
+ i += 1
23
+ else :
24
+ merged .append (right [j ])
25
+ j += 1
26
+ merged .extend (left [i :])
27
+ merged .extend (right [j :])
28
+ return merged
29
+
30
+
31
+ def generate_random_list (size : int = 10 , lower : int = 1 , upper : int = 100 ) -> List [int ]:
32
+ return [random .randint (lower , upper ) for _ in range (size )]
33
+
34
+
35
+ def main ():
36
+ """
37
+ Executes the merge sort algorithm with a randomly generated list.
38
+ Time Complexity: O(n log n)
39
+ """
40
+ rand_num_li = generate_random_list ()
41
+ print (f"Unsorted List: { rand_num_li } " )
42
+ sorted_list = merge_sort (rand_num_li )
43
+ print (f"Sorted List: { sorted_list } " )
44
+
45
+
46
+ if __name__ == '__main__' :
47
+ main ()
You can’t perform that action at this time.
0 commit comments