Numerical Methods for High-Speed Flows