def quick(arr, left ,right):
ax = arr[left]
while left < right:
while arr[right] >= ax and left < right:
right -= 1
arr[left] = arr[right]
while arr[left] <= ax and left < right:
left += 1
arr[right] = arr[left]
arr[left] = ax
print(arr)
return left
def findk(arr, left ,right,k):
if left == right:
return arr[left]
index = quick(arr, left ,right)
if index+1 == left+k:
return arr[index]
elif index+1 < left+k:
return findk(arr,index+1,right, k-index-1+left)
else:
return findk(arr,left,index-1,k)
arr = [3,5,2,4,7,4,9,2]
print(findk(arr,0,7,6))