Selection in linear time