Exchanges tend to be the cheapest places to buy bitcoin. Coinfloor is the the most liquid GBP exchange. If you have an EUR bank account then there are more options like Bitstamp, Kraken, GDAX.
There are also other options like bittylicious (high fees) and localbitcoins (p2p), but I haven't tried those.