In [29]:
import time,random
def quick_sort(line):
    left_seq=[]
    right_seq=[]
    p=line[0]
    for number in line[1:]:
        if number<p:
            left_seq.append(number)
        else:
            right_seq.append(number)
    if left_seq:
        left_seq=quick_sort(left_seq)
    if right_seq:
        right_seq=quick_sort(right_seq)
    
    return left_seq+[p]+right_seq

def sort_simple_selection(seq):
    for i in range(len(seq)-1):
        min=i
        for j in range(i+1,len(seq)):
            if seq[j]<seq[min]:
                min=j
        seq[i],seq[min]=seq[min],seq[i]

numbers=[]
for i in range(10000):
    numbers.append(random.randint(1,100000))

start=time.time()
sort_simple_selection(numbers)
end=time.time()
print(end-start)
start=time.time()
numbers.sort()
end=time.time()
print(end-start)
start=time.time()
quick_sort(numbers)
end=time.time()
print(end-start)


5.305829286575317
0.0004980564117431641
---------------------------------------------------------------------------
RecursionError                            Traceback (most recent call last)
<ipython-input-29-cc35d4255e1c> in <module>()
     37 print(end-start)
     38 start=time.time()
---> 39 quick_sort(numbers)
     40 end=time.time()
     41 print(end-start)

<ipython-input-29-cc35d4255e1c> in quick_sort(line)
     12         left_seq=quick_sort(left_seq)
     13     if right_seq:
---> 14         right_seq=quick_sort(right_seq)
     15 
     16     return left_seq+[p]+right_seq

... last 1 frames repeated, from the frame below ...

<ipython-input-29-cc35d4255e1c> in quick_sort(line)
     12         left_seq=quick_sort(left_seq)
     13     if right_seq:
---> 14         right_seq=quick_sort(right_seq)
     15 
     16     return left_seq+[p]+right_seq

RecursionError: maximum recursion depth exceeded in comparison

In [ ]: