-
Notifications
You must be signed in to change notification settings - Fork 160
Expand file tree
/
Copy pathsorting.py
More file actions
38 lines (34 loc) · 984 Bytes
/
Copy pathsorting.py
File metadata and controls
38 lines (34 loc) · 984 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
def bubble_sort(nums):
nums = list(nums) # copy
for i in range(len(nums) -1 ):
for j in range(len(nums) -1 ):
if nums[j] > nums[j+1]:
nums[j], nums[j+1] = nums[j+1], nums[j]
return nums
def merge(nums1, nums2):
merged = []
i,j=0,0
while i<len(nums1) and j < len(nums2):
if nums1[i] <= nums2[j]:
merged.append(nums1[i])
i += 1
else:
merged.append(nums2[j])
j+=1
nums1_tail = nums1[i:]
nums2_tail = nums2[j:]
return merged + nums1_tail + nums2_tail
def merge_sort(nums):
nums = list(nums) # copy
if len(nums) <= 1:
return nums
mid = len(nums) // 2
left = nums[:mid]
right = nums[mid:]
left_sorted, right_sorted = merge_sort(left), merge_sort(right)
sorted_nums = merge(left_sorted, right_sorted)
return sorted_nums
array = [1,3,22,-55,66,33]
print(array)
print(bubble_sort(array))
print(merge_sort(array))