Here's how I clean bottles (assuming the labels have already been removed):
First, it's easiest if you rinse out your bottles right after you pour the beer out, so they don't need much cleaning - no dried beer or mold in there.
While I use Oxiclean for most cleanup, I use PBW for bottles because it doesn't leave a while film on the bottles like Oxiclean does. The PBW is expensive - I think I'm going to try the homemade version (Oxiclean and TSP/90) - here's a thread about that:
https://www.homebrewtalk.com/f11/home-made-pbw-safe-glass-safe-general-182939/
So I soak some bottles in a PBW solution in a bucket for a few minutes, sitting upright, then take them out, still filled, and set them next to the bucket, then add more empty bottles to the bucket to let soak while I rinse the first batch. I do this on the counter next to my sink. I have a faucet adapter on the faucet, and a "Y" attaches to that so I have two separately controlled outlets. On the rear outlet of the "Y" I have a jet bottle washer - nothing on the front outlet. I set the front control so that it's just barely on and get a fine spray coming out. Now I take a bottle, dump the PBW solution back into the bucket, then rinse the outside under the spray, rinse the inside with the jet washer, another quick rinse on the outside, and hang on the bottling tree. By the time I get the first batch rinsed, the second batch has soaked, so I pull those out and set them on the counter next to the bucket and refill the bucket with empty bottles - repeat till done. But if your bottles are really filthy or still have the labels on, you're going to have to soak them longer.
Normally, I don't need to use a bottling brush.
I use a vinator and StarSan to sanitize immediately before bottling.