The bodies were spotted along with debris floating in the Java Sea off the Indonesian part of Borneo, in one of the search zones for the plane.
There has been no official confirmation that the remains come from the plane.
The Airbus A320-200, carrying 162 people from Surabaya in Indonesia to Singapore, disappeared on Sunday.
The search operation is now in its third day, with the area widened to cover 13 zones over land and sea.
In a separate development, there were reports of a second incident involving an AirAsia plane at Kalibo in the central Philippines. The reports said the plane overshot the runway.
During a news conference by the head of the search operation, shown live on Indonesian TV, pictures of the debris were shown including a body floating on the water.
Relatives of passengers on the plane watching the pictures were visibly shocked.
Later, the Indonesian navy reported that 40 bodies had been retrieved by one warship.
Its spokesman said the rescuers were continuing to recover bodies and were “very busy now”.
AirAsia CEO Tony Fernandes tweeted to the families: “My heart is filled with sadness for all the families involved in QZ 8501. On behalf of AirAsia, my condolences.”
Search operation head Bambang Soelistyo said he was 95% certain the objects shown were from the plane, adding that a shadow was spotted under water which appeared to be in the shape of a plane.
All resources were now being sent to the area where the debris was found, he said.
Bambang Soelistyo added that ships with more sophisticated technology were being deployed to check whether larger parts of the plane were submerged beneath the debris.
Indonesian civil aviation chief Djoko Murjatmodjo, quoted by AFP news agency, said “significant things” such as a passenger door and cargo door had been found.
Djoko Murjatmodjo added that the objects had been found 100 miles south-west of Pangkalan Bun in Borneo’s Central Kalimantan province.
At least 30 ships, 15 aircraft and seven helicopters joined the operation when it resumed at 06:00AM local time on December 30.
The operation, led by Indonesia, includes assistance from Malaysia, Singapore and Australia, with other offers of help from South Korea, Thailand, China and France. The US destroyer USS Sampson is on its way to the zone.
On board the plane were 137 adult passengers, 17 children and one infant, along with two pilots and five crew.
Most were Indonesian but the passengers included one UK national, a Malaysian, a Singaporean and three South Koreans.
AirAsia Flight QZ8501 left Surabaya at 05:35 Jakarta time on December 28 and had been due to arrive in Singapore two hours later.
Safety officials say the captain had asked for permission to take the plane higher but, by the time permission was granted, communication with the plane was lost.
The plane was officially declared missing at 07:55.
AirAsia previously had an excellent safety record and there were no fatal accidents involving its aircraft.
CuWbbGLVYpAThe US House Ethics Committee has voted to release its report on former Republican Representative…
ABC News has agreed to pay $15 million to President-elect Donald Trump to settle a…
South Korea’s parliament has voted to impeach President Yoon Suk Yeol over his failed attempt…
Israeli war planes have carried out more than 100 air strikes in Syria on December…
President-elect Donald Trump has threatened to impose 100% tariffs on the BRICS countries if they…
Syrian troops have withdrawn from the city of Aleppo following an offensive by rebels opposed…