Based on experience from friends and clients, I can recommend 3 hotels in Rio. Depending on where you want to stay, there is the Excelsior in Copacabana, the Best Western Sol Ipanema and the Promenade Palladium in Leblon.
As for transfers to the ship, the best way to get from your hotel to the ship is via taxi.