https://rakesh-trri.medium.com/kth-smallest-largest-element-in-unsorted-array-worst-case-linear-time-cf93bfe0619c