A starting point for a classification (*up to conjugation*) is the **Burnside theorem**: there is no irreducible subalgebra in $M_n({\bf C})$ other than $M_n({\bf C})$ and $\{0\}$. An elementary proof is given by Lomonosov Rosenthal (2003), I think it can be found online. There are also versions of the Burnside theorem for the field of real numbers ${\bf R}$ and the quaternions ${\bf H}$. With this theorem at hand, you can easily list all subalgebras of $M_2({\bf C})$. Restricting to the subalgebras containing id, we get the upper triangular matrices, upper triangular with the two diagonal terms being equal, diagonal matrices, diagonal matrices with the two diagonal terms being equal (and I think that's all, *up to conjuguacy*). I would guess however, that there is no algorithm that can decide if two matrix algebras on some arbitrary field are isomorphic in general (but I may be wrong on that point).