Finding k'th smallest element from a given sequence only with O(k) memory O(n) time
Create a buffer of size $2k$. Read in $2k$ elements from the array. Use  a linear-time selection algorithm to partition the buffer so that the $k$ smallest elements are first; this takes $O(k)$ time. Now read in another $k$ items from your array into the buffer, replacing the $k$ largest items in the buffer, partition the buffer as before, and repeat.

This takes $O(k * n/k) = O(n)$ time and $O(k)$ space.