Rick,
A fifth way is using SAS/IML:

data Have;
input x @@;
datalines;
0.54 3.33 2.55 0.95 1.11 1.02 1.09 1.78 2.87 2.53
. 1.49 0.74 0.02 0.29 0.17 1.08 0.21 4.00 0.83
0.09 2.25 2.56 1.93 0.34 0.31 0.08 0.29 0.65 0.08
0.78 0.08 0.83 0.01 0.46 1.22 0.53 0.07 0.08 0.46
0.59 0.04 0.26 0.68 0.10 1.91 0.31 0.24 0.05 1.04
0.24 0.10 0.09 0.03 0.30 2.98 0.33 0.18 0.22 2.50
2.41 2.66 0.22 0.60 2.32 1.17 1.14 0.05 0.56 0.42
2.87 0.03 0.40 0.44 0.23 1.64 0.31 1.00 1.96 0.08
0.10 0.06 1.24 0.03 0.63 1.14 0.07 0.06 0.13 1.83
1.14 0.18 0.13 0.75 0.69 1.62 2.27 1.50 0.02 1.04
;

proc iml;
use have;
read all var {x};

smallest1=x[loc(element(rank(x),1:5)=1)]; call sort(smallest1);
largest1 =x[loc(element(rank(-x),1:5)=1)]; call sort(largest1);
print smallest1 ,largest1;

smallest2=t(unique(x[loc(element(ranktie(x,'dense'),1:5)=1)])); call sort(smallest2);
largest2 =t(unique(x[loc(element(ranktie(-x,'dense'),1:5)=1)])); call sort(largest2);
print smallest2 ,largest2;

quit;