Skip to content

Instantly share code, notes, and snippets.

@sochoa
Created January 4, 2015 05:16
Show Gist options
  • Save sochoa/3617033876b870321d57 to your computer and use it in GitHub Desktop.
Save sochoa/3617033876b870321d57 to your computer and use it in GitHub Desktop.
import random
count = 10
max_rand = 100
min_rand = 0
lst = []
def merge_sort(lst):
if len(lst) <= 1:
return lst
half = int(len(lst) / 2)
left = lst[0:half]
right = lst[half:]
left = merge_sort(left)
right = merge_sort(right)
# Perform merge
merged = []
FIRST = 0
while left and right:
if left[FIRST] < right[FIRST]:
merged.append(left.pop(FIRST))
else:
merged.append(right.pop(FIRST))
if left:
merged += left
if right:
merged += right
return merged
for _ in range(count):
x = random.randint(min_rand, max_rand)
if x not in lst:
lst.append(x)
print "Unsorted: ", lst
print "Merge Sort: ", merge_sort(lst)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment