Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,13 @@
|
|||
from heapq import merge
|
||||
|
||||
def merge_sort(m):
|
||||
if len(m) <= 1:
|
||||
return m
|
||||
|
||||
middle = len(m) // 2
|
||||
left = m[:middle]
|
||||
right = m[middle:]
|
||||
|
||||
left = merge_sort(left)
|
||||
right = merge_sort(right)
|
||||
return list(merge(left, right))
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
def merge(left, right):
|
||||
result = []
|
||||
left_idx, right_idx = 0, 0
|
||||
while left_idx < len(left) and right_idx < len(right):
|
||||
# change the direction of this comparison to change the direction of the sort
|
||||
if left[left_idx] <= right[right_idx]:
|
||||
result.append(left[left_idx])
|
||||
left_idx += 1
|
||||
else:
|
||||
result.append(right[right_idx])
|
||||
right_idx += 1
|
||||
|
||||
if left_idx < len(left):
|
||||
result.extend(left[left_idx:])
|
||||
if right_idx < len(right):
|
||||
result.extend(right[right_idx:])
|
||||
return result
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
def merge(x, y):
|
||||
if x==[]: return y
|
||||
if y==[]: return x
|
||||
return [x[0]] + merge(x[1:], y) if x[0]<y[0] else [y[0]] + merge(x, y[1:])
|
||||
|
||||
def sort(a, n):
|
||||
m = n//2
|
||||
return a if n<=1 else merge(sort(a[:m], m), sort(a[m:], n-m))
|
||||
|
||||
a = list(map(int, input().split()))
|
||||
print(sort(a, len(a)))
|
||||
Loading…
Add table
Add a link
Reference in a new issue