Question: Below is code for a Python implementation of Quick Sort: def quicksort(lst): Quicksort list and return result. if len(lst) < 2: # if length of
Below is code for a Python implementation of Quick Sort:
def quicksort(lst): """Quicksort list and return result.""" if len(lst) < 2: # if length of lst is 1, return lst return lst # select pivot element mid = int(len(lst) / 2) # index at half the list pivot = lst[mid] # partition elements into lo , hi , eq buckets lo , hi , eq = [] , [] , [] for elem in lst : if elem < pivot : lo.append(elem) elif elem == pivot : eq.append(elem) else : # elem > pivot hi.append(elem) # concatenate sorted buckets and finish return quicksort(lo) + eq + quicksort(hi)
Given the list [8, 4, 1, 6, 5, 2, 7, 3] respond to the following questions:
1. When this function is initially called, what are the values of lst, pivot, lo, and hi?
2. When the quicksort is first called recursively on the lo list, what are the values of lst, pivot, lo, and hi?
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
