A lot of ShaderToy demos share the Ray Marching algorithm to render the scene, but they are often written with a very compact style and i can't find any straightforward examples or explanation.
So what is Ray Marching? Some comments suggests that it is a variation of Sphere Tracing. What are the computational advantages of a such approach?
How do you write a raymarching shader?

Ray marching is a ray tracing variant that approximate intersection points using iterative steps instead of a lookup table. This method is computationally cheaper than exact ray tracing because it doesn't store pre-computed collision results for every object as ray tracing does. Each ray is marched iteratively towards the intersection point, and the process stops when the ray intersects a geometry or reaches a maximum iterations limit.
Ray marching is a method for rendering scenes by casting rays from the camera through the scene and determining the intersection point of each ray with objects in the scene, in a continuous manner. This is different from traditional ray tracing methods where each object has a list of intersections with the ray, and the intersection with the closest object is chosen to determine the final color of a pixel.

Instead of pre-calculating intersections for each object, ray marching calculates