well, this is actually quite hard.
latex tries top before bottom because the code does
\def \@addtotoporbot {%
\@getfpsbit \tw@
\ifodd \@tempcnta
\@flsetnum \@topnum
\ifnum \@topnum>\z@
\@tempswafalse
\@flcheckspace \@toproom \@toplist
\if@tempswa
\@bitor\@currtype{\@midlist\@botlist}%
\if@test
\else
\@flupdates \@topnum \@toproom \@toplist
\@inserttrue
\fi
\fi
\fi
\fi
\if@insert
\else
\@addtobot
\fi
}
so you could swap some lines around there to try \@botlist rather than \@toplist first but floats are numbered when encountered and LaTeX doesn't let them float out of sequence, so if you put a float in the bottom area then you'd need to close the top area otherwise the float sequence will be out of order.
So practically speaking you don't really want to change the above: preferring bottom floats is the same preferring top floats but restricting the chance of a top float occurring but either banning them, or restricting the size of the top float area with \topfraction.
To really make a usable option to prefer bottom floats you would want a mechanism where floats are numbered as they are placed rather than as they are encountered, which isn't impossible, but would require major rewrite of most of latex's float placement.
[hbt]? – Ma Ming Jun 14 '14 at 19:56h,b,tandptokens is not in any way associated with the priority of the positions. – sudosensei Jun 14 '14 at 19:58