Saludos a todos y a todas. Este es mi primer post en estos foros.
Llevo unos dias leyendo posts como visitante y veo que hay unos cuantos que solicitan el algoritmo para la creación de campeonatos tipo liga.
Hace bastantes años que lo tengo implementado en
http://fsfraga.22520.eu/, en PHP, pero aquí es interesante mostrar el algoritmo general para que lo podáis implementar a voluntad.
Pondré un ejemplo con seis equipos participantes. El razonamiento se puede extender a cualquier número de equipos. Si es impar, basta con que se complete a par con un equipo ficticio (llamado 'descansa', por ejemplo).
Los equipos 1, 2, 3, 4, 5 y 6 forman la primera jornada:
\( \begin{bmatrix}{1}&{-}&{2}\\{3}&{-}&{4}\\{5}&{-}&{6}\end{bmatrix} \)
El primer equipo va a ser un elemento 'pivote' que alternará SIEMPRE, la primera posición y la última del cuadro. En las jornadas pares, ese pivote empujará, desde su posición última, a los equipos en un zig-zag hacia arriba.
Por tanto, la segunda jornada será:
\( \begin{bmatrix}{2}&{-}&{3}\\{4}&{-}&{5}\\{6}&{-}&{1}\end{bmatrix} \)
En las jornadas impares el 'pivote' pasará a la primera posición y quedará fijo el equipo situado en segunda posición, con el que compite. Al que saca de su sitio lo hace empujar hacia abajo, también en zig-zag, a los demás equipos excepto el situado en penúltima posición (con el que había jugado el pivote), que queda fijo.
La tercera jornada, entonces, queda así:
\( \begin{bmatrix}{1}&{-}&{3}\\{5}&{-}&{2}\\{6}&{-}&{4}\end{bmatrix} \)
y las dos últimas jornadas:
\( \begin{bmatrix}{3}&{-}&{5}\\{2}&{-}&{6}\\{4}&{-}&{1}\end{bmatrix} \) y \( \begin{bmatrix}{1}&{-}&{5}\\{6}&{-}&{3}\\{4}&{-}&{2}\end{bmatrix} \)
con lo que se acaban las rondas.
Los gestores de ligas profesionales alteran la secuencia de las jornadas dependiendo de intereses y para dificultar el descubrimiento del algoritmo. La verdad es que me costó encontrarlo...
Espero que esto ayude a quien lo necesite.