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