In [1]:
import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import random
import timeit

import sys
sys.setrecursionlimit(40000)

In [2]:
## MERGE(A, p, q, r)
def merge(A, p, q, r):
    # 1 n1 = q - p + 1
    n1 = q - p + 1
    # 2 n2 = r - q
    n2 = r - q
    # 3 Let L[1..n1 + 1] ald R[1..n2 + 1] be new arrays
    L = [0] * (n1)
    R = [0] * (n2)
    
    # Steps 4 - 12 adjusted for zero indexing
    # 4 for i = 1 to n1
    for i in range(0, n1):
        # 5 L[i] = A[p + i - 1]
        L[i] = A[p + i] 
    # 6 for j = 1 to n2
    for j in range(0, n2):
        # 7 R[j] = A[q + j]
        R[j] = A[q + 1 + j]
        #R[j] = A[q + j]
    # 8 L[n1 + 1] = inf
    # 9 R[n2 + 1] = inf
    # 10 i = 1
    i = 0
    # 11 j = 1
    j = 0
    # 12 for k = p to r
    k = p
    # 13 if L[i] <= R[j]
    while i < n1 and j < n2:
        if L[i] <= R[j]:
            # 14 A[k] = L[i]
            A[k] = L[i]
            # 15 = i + 1
            i += 1
        # 16 else A[k] = R[j]
        else:
            A[k] = R[j]
            # 17 j = j + 1
            j += 1
        k += 1

In [3]:
## MERGE-SORT(A, p, r) - runs O(n log n)
def mergeSort(A, p, r):
    # 1 if p < r
    if p < r:
        # q = [(p + r)/2]
        q = ((p + (r-1))//2)
        # 3 MERGE-SORT(A, p, q)
        mergeSort(A, p, q)
        # 4 MERGE-SORT(A, q + 1, r)
        mergeSort(A, q + 1, r)
        #5 MERGE(A, p, q, r)
        merge(A, p, q, r)

In [4]:
## INSERTION-SORT(A)
def insertSort(A):
    # 1 for j = 2 to A.length
    for j in range(2,len(A)):
        # 2 key = A[j]
        key = A[j]
        # 3 // Insert A[j] into the sorted sequence A[1 .. j - 1].
        # 4 i = j - 1
        i = j - 1
        # 5 while i > 0 and A[i] > key
        while ((i >= 0) & (A[i] > key)):
            # 6 A[i + 1] = A[i]
            A[i + 1] = A[i]
            # 7 i = i - 1
            i = i - 1
            # 8 A[i + 1] = key
            A[i + 1] = key

In [5]:
### PARTITION(A, p, r)
def partition(A, p, r):
    # 1 x = A[r]
    x = A[r]
    # 2 i = p - 1
    i = p - 1
    # 3 for j = p to r - 1
    for j in range(p, r):
        # 4 if A[j] <= x
        if A[j] <= x:
            # 5 i = i + 1
            i = i + 1
            # 6 exchange A[i] with A[j]
            A[i], A[j] = A[j], A[i]
    # 7 exchange A[i + 1] with A[r]
    A[i + 1], A[r] = A[r], A[i + 1]
    # 8 return i + 1
    return (i + 1)

In [6]:
## DETERMINISTIC QUICKSORT(A,p,r) - runs 
def quickSort(A, p, r):
    # 1 if p < r
    if p < r:
        # 2 q = PARTITION(A, p, r)
        q = partition(A, p, r)
        # 3 QUICKSORT(A, p, q - 1)
        quickSort(A, p, q - 1)
        # 4 QUICKSORT(A, q + 1, r)
        quickSort(A, q + 1, r)

In [7]:
# This is just a wrapper function for the timings
def wrapper(func, *args, **kwargs):
    def wrap():
        return func(*args, **kwargs)
    return wrap

In [8]:
## Create 3 lists of 20 sublists of increasing n random numbers to avoid skewing timing:
listsMerge5001 = [[] for _ in range(20)]
listsInsert5001 = [[] for _ in range(20)]
listsQuick5001 = [[] for _ in range(20)]

# Loops through and increasings the sublist length of random draws for each sublist
n = 0
for i in range(20):
    n += 500 
    for num in range(n):
        listsMerge5001[i].append(random.randint(1, n + 1)) #random.sample(range(1, 25001), n)
        listsInsert5001[i].append(random.randint(1, n + 1)) #random.sample(range(1, 25001), n)
        listsQuick5001[i].append(random.randint(1, n + 1)) #random.sample(range(1, 25001), n)
        

# Stores the length of ea. of the 25 sublists 
listLen = [len(listsMerge5001[i]) for i in range(len(listsMerge5001))]

# Create empty lists to store timings
# bubbleSort timings
merge5001 = []
insert5001 = []
quick5001 = []

for i in range(len(listsMerge5001)):
    merge5001.append(timeit.timeit(wrapper(mergeSort, listsMerge5001[i], 0, (len(listsMerge5001[i]) - 1)), number=10))
    insert5001.append(timeit.timeit(wrapper(insertSort, listsInsert5001[i]), number=10))
    quick5001.append(timeit.timeit(wrapper(quickSort, listsMerge5001[i], 0, (len(listsQuick5001[i]) - 1)), number=10))
    print('step {} of {} recorded'.format((i+1), len(listsInsert5001)))


step 1 of 20 recorded
step 2 of 20 recorded
step 3 of 20 recorded
step 4 of 20 recorded
---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-8-d023dc83d8f4> in <module>()
     26     merge5001.append(timeit.timeit(wrapper(mergeSort, listsMerge5001[i], 0, (len(listsMerge5001[i]) - 1)), number=10))
     27     insert5001.append(timeit.timeit(wrapper(insertSort, listsInsert5001[i]), number=10))
---> 28     quick5001.append(timeit.timeit(wrapper(quickSort, listsMerge5001[i], 0, (len(listsQuick5001[i]) - 1)), number=10))
     29     print('step {} of {} recorded'.format((i+1), len(listsInsert5001)))

/Users/b/anaconda/lib/python3.6/timeit.py in timeit(stmt, setup, timer, number, globals)
    231            number=default_number, globals=None):
    232     """Convenience function to create Timer object and call timeit method."""
--> 233     return Timer(stmt, setup, timer, globals).timeit(number)
    234 
    235 def repeat(stmt="pass", setup="pass", timer=default_timer,

/Users/b/anaconda/lib/python3.6/timeit.py in timeit(self, number)
    176         gc.disable()
    177         try:
--> 178             timing = self.inner(it, self.timer)
    179         finally:
    180             if gcold:

/Users/b/anaconda/lib/python3.6/timeit.py in inner(_it, _timer, _stmt)

<ipython-input-7-95ccf6cbd257> in wrap()
      2 def wrapper(func, *args, **kwargs):
      3     def wrap():
----> 4         return func(*args, **kwargs)
      5     return wrap

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
----> 8         quickSort(A, p, q - 1)
      9         # 4 QUICKSORT(A, q + 1, r)
     10         quickSort(A, q + 1, r)

<ipython-input-6-2fd1ef16a676> in quickSort(A, p, r)
      4     if p < r:
      5         # 2 q = PARTITION(A, p, r)
----> 6         q = partition(A, p, r)
      7         # 3 QUICKSORT(A, p, q - 1)
      8         quickSort(A, p, q - 1)

<ipython-input-5-56ea11d7dfc9> in partition(A, p, r)
      8     for j in range(p, r):
      9         # 4 if A[j] <= x
---> 10         if A[j] <= x:
     11             # 5 i = i + 1
     12             i = i + 1

KeyboardInterrupt: 

In [ ]: