(arr, first, last)
Quicksort
        Complexity: best O(n) avg O(n log(n)), worst O(N^2)
Quicksort
        Complexity: best O(n) avg O(n log(n)), worst O(N^2)
Quicksort Complexity : best O ( n ) avg O ( n log ( n )) worst O ( N^2 )
def quick_sort(arr, first, last):
    """ Quicksort
        Complexity: best O(n) avg O(n log(n)), worst O(N^2)
    """
    if first < last:
        pos = partition(arr, first, last)
        print(arr[first:pos - 1], arr[pos + 1:last])
        # Start our two recursive calls
        quick_sort(arr, first, pos - 1)
        quick_sort(arr, pos + 1, last)
def quick_sort ( arr , first , last ) : if first < last : pos = partition ( arr , first , last ) print ( arr [ first : pos - 1 ] , arr [ pos + 1 : last ] ) # Start our two recursive calls quick_sort ( arr , first , pos - 1 ) quick_sort ( arr , pos + 1 , last )