Remember that specifiers hbt are used as hints, not as a strict order. Positioning is controlled by a few registers. The default values are suitable for documents with a few small floats. If you have many figures/tables or if some of them are large, conditions specified by these registers will not be fulfilled and starting from one large float all figures and tables will be moved to the end of the sectioni or to the end of the document (or to explicit \clearpage). In such cases I use these settings:
\def\topfraction{0.9} % 90 percent of the page may be used by floats on top
\def\bottomfraction{0.9} % the same at the bottom
\def\textfraction{0.01} % at least 1 percent must be reserved for text
This is documented only in my article written in Czech and in the LaTeX source code.
Markus's answer is exactly what I've done. Remember that when you do this sort of thing you are overriding LaTeX and so you should pay attention to what happens when you force this formatting. That said, this is a case where the forcing makes things better in almost every case!
If you are struggling with the order of both 1-column and 2-column figures, may I suggest that you have a look at http://www.tex.ac.uk/cgi-bin/texfaq2html?label=2colfltorder where it mentions a package fixltx2e. I too was struggling to get the order correct, but this package fixed it.
No, specifiers h, b, t, p are just hints, they do not enforce placement to a particular position, other conditions must be fulfilled, otherwise all floating materials (figures, tables) is moved to the end of a section or chapter or evne to the end of the document. See my 4 years old answer above.
If figure and written content is to be ordered then the best thing will be to add "\clearpage" before the written content starts and use "\begin{figure}{h!}" for the figure just after the written content.
You can use [H] or [h!] command. It will help to keep the figures in your desired actual position. If you are using codes of every figures seperately then it can work good. Try it