If you have the time and money then I will highly recommend the Reef Encounter boat, its a live aboard boat that allows you to sleep on the reef, food is excellent and only has a max of about 40 people on it at any one time, although the best part for me was the ability to jump into the reef at 0630... watch the reef wake up and feed, next was jumping into the water at night with a tank strapped to your back and a torch in your hand, having reef sharks and huge GT follow your torch beam is a bit daunting but its awesome, the night time is scuba only but don't worry if you don't have a PADI or equivalent ticket, they will do resort dives as much as you like.
It might sound a bit expensive but when you consider the price includes accommodation, all meals, water/tea/coffee/juice, equipment hire and lots of adventure, it compares to what you'd spend on day activities and associated costs of being on holiday
https://reefencounter.com.au/
boat goes from Cairns.