Bạn sử dụng QuickSelect (gần giống QuickSort) phân ra 3 phần:
-Khoá key (một số ngẫu nhiên)
-Những số nhỏ hơn khoá key sẽ nằm bên trái
-Những số lớn hơn khoá key nằm bên phải
Sau đó kiểm tra xem khoá key có nằm đúng vị trí bạn tìm không? Nếu không thì lặp lại quá trình trên với sự thay đổi vẻ phạm vi.
Bạn tham khảo thêm tại đây: https://www.geeksforgeeks.org/kth-smallestlargest-element-unsorted-array-set-2-expected-linear-time-2/?ref=rp