Quick Select
Select right as pivot element and left as fill position from left to right move elements smaller or equal to fill position and move the fill position to right Now p is the kth smallest element def quickselect(l, r): pivot = nums[r] p = l for i in range(l, r): if nums[i] <= pivot: nums[i], nums[p] = nums[p], nums[i] p += 1 nums[p], nums[r] = nums[r], nums[p] if p > k: return quickselect(l, p-1) elif p < k: return quickselect(p+1, r) else: return nums[p]