1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
4 <TITLE> Orcish Manouvre Sort </TITLE>
6 <H3 ALIGN=CENTER>1.9: Orcish Manouvre Sort </H3>
7 <TABLE ALIGN="CENTER" BORDER=0 WIDTH="95%">
9 <TD WIDTH="25%" ALIGN="LEFT">
10 <A HREF="slide-0108.html">Prev</A>
11 <A HREF="slide-0110.html">Next</A>
12 <A HREF="index.html">Index</A>
15 <TD WIDTH="25%" ALIGN="RIGHT">Page 9/12
20 <li> Caches extracted keys in a hash
22 <li> Assignments to the hash in ||=
24 <li> Called the orchish because of Or-Cache
26 <li> Created by Joseph Hall
28 <li> It will re-extract keys for any record with a false value
30 <li> The caching hash must be cleared beforehand
33 <li> Sort::Maker declares a caching hash in the anonymous sub
36 <li> Hash lookups are still O( N log N )
38 <li> Good for medium sort sets
40 <li> Pass 'orcish' option to make_sorter
48 do{ my ($val) = map { $_->[0] } $a ; $val } )
51 do{ my ($val) = map { $_->[0] } $b ; $val } )
56 do{ my ($val) = map { $_->[1] } $a ; $val } )
59 do{ my ($val) = map { $_->[1] } $b ; $val } )
67 <TABLE ALIGN="CENTER" BORDER=0 WIDTH="95%">
69 <TD WIDTH="30%" ALIGN="LEFT">
70 <A HREF="slide-0108.html">Prev</A>
71 <A HREF="slide-0110.html">Next</A>
72 <A HREF="index.html">Index</A>
74 YAPC::NA 2004, Buffalo, NY
75 <TD WIDTH="25%" ALIGN="RIGHT">Page 9/12
79 <TD ALIGN="CENTER" COLSPAN="3">
80 <FONT SIZE="-3">© 2004 Uri Guttman</FONT>