Okay, there seems to be some confusion about what fish are what. Chinese Algae Eaters (CAE) and their golden cousins, IMO, are quite good at cleaning up a tank when they are very young. The one I have now is about 3 1/2 inches long, and he is beginning to prefer algae wafers and shrimp pellets. CAEs also become aggressive when they get older.
Siamese Algae Eaters... SAE, Flying Fox, Algae Eating Shark... they eat beard algae and whatnot. They don't get aggressive, from what I understand. I just bought one of those today... LFS labelled it as Algae Eating Shark.
Otos... OCats... are small and delicate, very sensitive to water quality. I have never had much luck keeping these alive for more than a couple weeks.
Common plecos are kind of pointier than rubberlipped plecs. They grow to be about 18" long... so not really a good choice for that 20 gallon tank... I've never had one, so I don't know how effective they are.
Rubberlipped plecs look kind of like slugs from a distance, they are so streamlined. They are quite sensitive to water quality issues. They are very efficient at cleaning up algae. However, the ones I've had seem to eventually stake out a territory and keep to that part of the tank. They especially like large smooth rocks. They also have been known to 'polish' the decorations in the tank. In my case, my plec started scraping the paint/dye on the fake rock ornament I had. I think he died from ingesting the resin and paint so much.
And there are other options like snails and shrimp, but I don't know anything about that at all.