pivot = a[lb] start = lb end = ub while start < end: while a[start] <= pivot: start = start + 1 while a[end] > pivot: end = end - 1 if start < end: (a[start], a[end]) = (a[end], a[start]) (a[lb], a[end]) = (a[end], a[lb]) return end def quick_sort(a, lb, ub): if lb < ub: loc = partition(a, lb, ub) quick_sort(a, lb, loc-1) quick_sort(a, loc+1, ub) size = int(input("Enter the length of your array = ")) print("Enter the elements of the array by space = ", end="") a = [int(i) for i in input().split()] #print(a) lb = 0 ub = size - 1 quick_sort(a, lb, ub) print(a)``` ![SharedScreenshot|512x235](upload://hFnvkVmHrrAOXhcnpj4F8Dmdux1.jpeg)
You have not posted all the code, partition is missing.
Please post as text not an image - no one can cut-n-paste from an image.
Like you did in the first message but with all the code please.
You haven’t said what the bug is, but what happens if the pivot is the largest value?
Try adding print statement to show what it’s doing.
I also notice that
size is unrelated to the length of
a. As you’re already asking for the values, I’d suggest inputting them and then having
size = len(a).