Have you heard of the QuickSelect algorithm? It's quite good at finding the min/max (I think in practice it's about O(log(n)) average, O(n) worst case).
If you only need a few min/max value, I'd say stick with the quickselect algorithm. Otherwise, it may just be better to use the full quicksort routine (which is probably the algorithm used by Array.sort()).
edit:
I was mistaken. The best way to find the #1 min/max is to iterate. The best way to find the #nth min/max is to use quickselect, or quicksort if you need to find a lot of min/max values.