Recorrido lineal: máximo provisional 12. 7 no lo supera. 19 sí: provisional 19. 15 no. Máximo 19. Comparaciones: 3, que es n − 1 con n = 4.
Por parejas: max(12, 7) = 12; max(19, 15) = 19; max(12, 19) = 19. También 3 comparaciones y el mismo 19.
Ordenar la lista entera de mayor a menor y quedarse con la primera también da 19, pero ordenar hace más trabajo del necesario si solo se pide el máximo.
Comparaciones del recorrido lineal = n − 1.
n es el número de datos, aquí 4; se compara cada dato nuevo con el provisional, y el primero no se compara contra nadie.
Ejercicios
1. Dos años al 10 %
Capital 2000 € al 10 % anual compuesto, 2 años. Calcula el final con los dos algoritmos.
Corrección
Año 1: 2000 · 1,10 = 2200.
Año 2: 2200 · 1,10 = 2420.
Fórmula: (1,10)² = 1,21; 2000 · 1,21 = 2420.
Coinciden.
1,10 · 1,10 es 1,21, no 1,20. El céntimo que falta en 1,20 sería olvidar el interés del interés. Por eso 2000 · 1,20 = 2400 no es el capital compuesto.
2. Tipo que cambia
El primer año el tipo es 5 % y el segundo es 10 %, capital inicial 1000. ¿Sirve (1,05)²? Calcula el capital correcto.
Corrección
(1,05)² supone dos años al 5 %. No sirve.
Año 1: 1000 · 1,05 = 1050.
Año 2: 1050 · 1,10 = 1155.
El algoritmo paso a paso admite un factor distinto cada año; la potencia de un solo factor, no.
1155 no es ni 1000 · 1,05² = 1102,50 ni 1000 · 1,10²
1102,50 ni 1000 · 1,10² = 1210. Cada año aporta su propio factor, y el orden aquí da 1,05 · 1,10 = 1,155.
3. Máximo repetido
Aplica el recorrido lineal a 3, 8, 5, 8. ¿Cuál es el máximo y cuántas comparaciones haces?
Corrección
Provisional 3.
8 lo supera: provisional 8.
5 no. El segundo 8 tampoco supera al provisional.
Máximo 8, con 3 comparaciones. Que el 8 aparezca dos veces no cambia el máximo.
El algoritmo no cuenta frecuencias: solo retiene el mayor valor visto. Para la moda haría falta otro algoritmo, que cuente repeticiones.
4. No generalices un atajo
Alguien calcula el 10 % de 80 como 80/10 = 8. Otro hace 80 · 0,10 = 8. Calcula el 7,5 % de 80 y di qué atajo se rompe.
Dividir entre 10 solo corresponde al 10 %, no al 7,5 %.
80/10 = 8 no es el 7,5 % de 80.
Los dos algoritmos del 10 % coincidían; el primero no se exporta a otro porcentaje.
Un algoritmo lleva sus hipótesis escritas. «Mover la coma» o dividir entre 10 es el algoritmo del 10 %, no el del porcentaje general. El producto por el tanto por uno sí se exporta.
Cierre
Comparar algoritmos es decir qué hipótesis usa cada uno, cuántos pasos crecen con el tamaño del problema y en qué caso uno deja de valer. Mismo resultado no significa misma receta.