In [2]:
from sorting import *
import numpy as np
from numpy import *
import matplotlib.pyplot as pyplot

In [3]:
## to visually check my quicksort works:
for j in range(3):
    data = np.random.randint(50,size=50)
    pyplot.bar(range(len(data)),quicksort(data),width=1);pyplot.show()



In [4]:
## testing my quicksort against numpy sorting:

results = []
for j in range(1000):
    data = np.random.randint(50,size=50)
    results.append(all(quicksort(data) == np.sort(data)))
all(results)


Out[4]:
True

In [5]:
## to visually check my mergesort works:

for j in range(3):
    data = np.random.randint(50,size=50)
    pyplot.bar(range(len(data)),mergesort(data),width=1);pyplot.show()



In [6]:
## testing my mergesort against numpy sorting:

results = []
for j in range(1000):
    data = np.random.randint(50,size=50)
    results.append(all(mergesort(data) == np.sort(data)))
all(results)


Out[6]:
True

In [7]:
## testing runtimes

print 'quicksort runtime:'
%timeit quicksort(np.random.randint(10000,size=10000))
print 'mergesort runtime:'
%timeit mergesort(np.random.randint(10000,size=10000))


quicksort runtime:
10 loops, best of 3: 114 ms per loop
mergesort runtime:
1 loops, best of 3: 147 ms per loop

In [ ]: