In World War II, submarines were named after fish, battleships after states, cruisers after cities, destroyers and DEs after people (almost always men), heavy aircraft carriers variously (former ships, people, whimiscally, e.g., Shangra-la), and jeep carriers (baby flat tops) after battles.
I stumbled into a photograph of the brand-new, but ill-fated, US submarine, USS Corvina (http://en.wikipedia.org/wiki/USS_Corvina_(SS-226)). She was lost with all handsnever firing weapons at the enemy. Sad.
During WWII the Navy maintained a rather ridged scheme for naming their ships. Battleships = States,(Iowa, West Virginia). Heavy cruiser = Large U.S. cities (Los Angele,
Indianapolis). Light cruisers = small U.S. cities (Boise, Duluth) Destroyers & DEs, = former personnel of the Navy or Marine Corp usually, but not always those that had been decorated for heroism. Carriers = Ships or Battles of the American Revolution (Ranger, Bonhomme Richard, Yorktown or Saratoga). Carriers were the first class of ships to break the name rules, Shangra-La, Franklin D. Roosevelt, Midway.
Escort carriers were named for geographical features such as Sitkoh Bay, Gambier Bay, Savo Island, Makin Island.
Hospital ships were named for their purpose, Solice, Mercy,
Comfort. Ammunition ships were named for thing that blow up, Nitro, Pyro, Mt. Baker, Kilauea. Fleet oiler were named for medium and small size rivers in the U.S., Platte, Ponchatoula, Ashtabula. Fleet tugs were named for American Indian tribes such as Abnaki, Molala. This naming scheme was followed closely during the Second World War but after the war in the 50s things changed and the names of Naval vessels became sort of a political football in some cases.
My dad was on a mine sweeper - I believe they were named after diving birds (he was on the Merganser).