You will probably find it least expensive to fly into LAX. A shared shuttle from the airport to San Pedro will run about $16 per person, and take anywhere from 30-45 minutes depending upon traffic. I've stayed at the San Pedro Inn and Suites (great place to stay, will run about $100 on hotels.com) and the Vagabond (about $80, also with a free shuttle, not as nice, but very clean.) Both are about 5 minutes from the port, and they both begin free shuttle service at 10:00 am, and run every 20-30 minutes until noon.
You'll debark at the latest at 9:30, but if you're carrying your own luggage off, the ship is usually cleared by customs by 7:30, and you can leave right away. Any flights before 12:30 are considered "early flights" and you'll let them know on the ship so you can be in the first luggage group to be called, which if I remember correctly is around 8:15-8:30. (If you're carrying your own luggage off, you don't have to wait for a luggage group, and you don't have to put your luggage out in the hall way the night before for them to collect and take through customs for you.)
I would budget a minimum of 3 hours between your debarkation and flight. If using a shared van or disney transfers, where you're waiting for the rest of the ride to fill, 4 hours would be preferable.