Difference between Weighting & Algorithm param?

I am trying to find out the difference between weighting and algorithm parameters for web api.

The weighting can be e.g. fastest or shortest and controls the ‘route quality’. The algorithm can be dijkstra, dijkstrabi, astar, … and controls a bit the speed where astarbi should be the fastest for none-CH and dijkstrabi for CH.

BTW: Moved this from Directions API to Core