35 lines
597 B
Python
35 lines
597 B
Python
|
#!/usr/bin/env python3
|
||
|
# vim: set ts=4 sw=4 et tw=80:
|
||
|
|
||
|
import sys
|
||
|
import math
|
||
|
|
||
|
def find(A,x):
|
||
|
for a in A:
|
||
|
if a == x:
|
||
|
return True
|
||
|
return False
|
||
|
|
||
|
def merge(A,B):
|
||
|
X = []
|
||
|
for a in A:
|
||
|
if not find(X, a):
|
||
|
X.append(a)
|
||
|
for b in B:
|
||
|
if not find(X, b):
|
||
|
X.append(b)
|
||
|
return X
|
||
|
|
||
|
def mergesort(A):
|
||
|
l = len(A)
|
||
|
if l < 2:
|
||
|
return A
|
||
|
else:
|
||
|
lh = len(A) // 2
|
||
|
h1 = mergesort(A[:lh])
|
||
|
h2 = mergesort(A[lh:])
|
||
|
return merge(h1,h2)
|
||
|
|
||
|
args = [int(x) for x in sys.argv[1:]]
|
||
|
print(mergesort(args))
|