Consider the following short example, where a two column page is selected, and the algorithm is split across the two columns using a manual \pagebreak within the algorithm's code:
\documentclass[twocolumn]{article}
\usepackage[english]{babel}
\usepackage{algpseudocode}
\begin{document}
\begin{algorithmic} [1]
\State Let $a \gets b + c$
\State Let $a \gets b + c$
\pagebreak
\State Let $a \gets b + c$
\State Let $a \gets b + c$
\end{algorithmic}
\end{document}
Here's the result:

Now, by putting the code inside a float, I no longer can split the algorithm by \pagebreak:
\documentclass[twocolumn]{article}
\usepackage[english]{babel}
\usepackage{algorithm}
\usepackage{algpseudocode}
\begin{document}
\begin{algorithm*}[t]
\caption{Test}
\begin{algorithmic} [1]
\State Let $a \gets b + c$
\State Let $a \gets b + c$
\pagebreak
\State Let $a \gets b + c$
\State Let $a \gets b + c$
\end{algorithmic}
\end{algorithm*}
\end{document}
and the result:

How can I get the same effect within a float? Could you please suggest a method which is not specific to algpseudocode, and applies to algorithm2e as well? (The latter does not support \pagebreak within the code.)

