Garbine Muguruza beat 2012 runner-up Agnieszka Radwanska to reach the Wimbledon final, where she will play Serena Williams or Maria Sharapova.