The best possible algorithm will find the $k^{th}$ smallest element in $O(n)$ time and then move all elements smaller than this to its left - partition part of quick sort which again takes $O(n).$ Finally, these $k$ elements can be sorted in $O(k \log k)$ time.