Context can be clarified by writing: "Quickselect is a selection algorithm to find the INDEX OF THE kth smallest element in an unordered list. It is closely related to the quicksort sorting algorithm."
True. This is what I meant by confusing, without properly defining the variables at play, in this context, k is the index of the element of the ordered list, and not the kth smallest element.
14 comments
[ 5.2 ms ] story [ 33.3 ms ] threadOutput: k’th smallest element in the array is 4
Am I missing something... shouldn't the k'th smallest element in this array be 3, given that k=2?
The notation is potentially misleading, but consistent with this interpretation.
EDIT:
Ah, I was completely wrong.
The smallest element is 1, the second smallest element is 3, the index of the second smallest element counting from 1 is 4.This is deeply, deeply confusing. Badly expressed, and a very poor example.
Semantics, I agree, but confusing nonetheless.
Or in other words, how do we define k?