Question: Need help with debugging this code in Python. Data Structures. def quickSort(alist): quickSortHelper(alist,0,len(alist)-1) def quickSortHelper(alist,first,last): if first: splitpoint = partition(alist,first,last) quickSortHelper(alist,first,splitpoint-1) quickSortHelper(alist,splitpoint+1,last) def partition(alist,first,last): pivotvalue

Need help with debugging this code in Python. Data Structures.

def quickSort(alist):

quickSortHelper(alist,0,len(alist)-1)

def quickSortHelper(alist,first,last):

if first:

splitpoint = partition(alist,first,last)

quickSortHelper(alist,first,splitpoint-1)

quickSortHelper(alist,splitpoint+1,last)

def partition(alist,first,last):

pivotvalue = alist[first]

leftmark = first+1

rightmark = last

done = False

while not done:

while leftmark <= rightmark and \

alist[leftmark] <= pivotvalue:

leftmark = leftmark + 1

while alist[rightmark] >= pivotvalue and \

rightmark >= leftmark:

rightmark = rightmark -1

if rightmark < leftmark:

done = True

else:

temp = alist[leftmark]

alist[leftmark] = alist[rightmark]

alist[rightmark] = temp

temp = alist[first]

alist[first] = alist[rightmark]

alist[rightmark] = temp

return rightmark

alist = [54,26,93,17,77,31,44,55,20]

quickSort(alist)

print(alist)

def quicksortRandom(alist, first, last):

if first < last:

splitpoint = partition(alist, first, last)

quicksort(alist, first, splitpoint-1)

quicksort(alist, splitpoint+1, last)

return alist

def partitionRandom(alist, first, last):

pivotvalue = randint(first, last)

temp = alist[last]

alist[last] = alist[pivotvalue]

alist[pivotvalue] = temp

pIndex = first

for i in range(first, last):

if alist[i] <= alist[last]:

temp = alist[i]

alist[i] = alist[pIndex]

alist[pIndex] = temp

pIndex += 1

temp1 = alist[last]

alist[last] = alist[pIndex]

alist[pIndex] = temp1

return pIndex

def gen(number, b=100000):

some_list = []

return [some_list.append(random.randint(0, b)) for x in xrange(number)]

alist = [2, 5, 6, 8, 3, 7, 5, 6, 20, 100, 85, -20]

if __name__ == '__main__':

print(quickSort(list, 0, len(list) - 1))

for element in list:

print( str(element) + ' ')

start = time.time()

quickSort(list, 0, len(list)-1)

end = time.time() - start

print(end)

for element in list:

print(str(element) + ' ')

start = time.time()

print(quicksortRandom(blist, 0, len(blist)-1))

end = time.time() - start

print(end)

for element in list:

print(str(element) + ' ')

for j in range(0, 11):

blist = gen(element)

start = time.time()

quickSort(blist, 0, len(blist)-1)

end = time.time() - start

print(end)

for element in list:

print(str(element) + ' ')

for j in range(0, 11):

blist = gen(element)

start = time.time()

print(quicksortRandom(blist, 0, len(blist)-1))

end = time.time() - start

print(end)

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!