Fourth seed Alexander Zverev ends the run of Fabian Marozsan to set up a Miami Open semi-final against Carlos Alcaraz or Grigor Dimitrov.