Lo he buscado en internet en muchos sitios pero ninguno da una borrar respuesta. Todos dan un montón de cosas matemáticas complicadas que no sólo son difíciles de entender para mí, sino que también son irrelevantes, ya que simplemente quiero saber cuál es el límite superior (complejidad en el peor de los casos), el límite inferior y la complejidad del tiempo medio del algoritmo de Euclides. Esto es lo que he recopilado de una miríada de sitios, ninguno dice lo mismo:
Para encontrar $\gcd(a,b)$ con $b<a$ y $b$ con un número de dígitos $h$ :
-
Algunos dicen que la complejidad temporal es $O(h^2)$
-
Algunos dicen que la complejidad temporal es $O(\log a+\log b)$ (suponiendo que $\log_2$ )
-
Otros dicen que la complejidad temporal es $O(\log a\log b)$
-
Uno incluso dice esto "Por el teorema de Lame se encuentra un primer número de Fibonacci mayor que b. Si es $F[k+1]$ hay menos de $k$ llamadas recursivas. Por lo tanto, es $O(\log b)$ "
-
Todos dicen que el peor caso es cuando $a$ y $b$ son números de Fibonacci consecutivos.
Le agradecería mucho que resolviera todo el asunto de forma concluyente dándome respuestas directas y claras a lo siguiente:
-
¿Cuál es la complejidad temporal en el peor caso (límite superior) del algoritmo de Euclides?
-
¿Cuál es la complejidad temporal del caso medio del algoritmo de Euclides?
-
¿Cuál es el límite inferior del Algoritmo de Euclides (caso mejor) y cuándo se produce?
No tienes idea de cuánto me ayudará tu respuesta. Estoy muy abatido ya que estoy empantanado con lo que se puede considerar un algoritmo bastante simple. Gracias.
0 votos
¿Qué quiere decir con media? ¿Se refiere a $a,b$ aleatorio por debajo de algún límite $n$ , $a$ fijo y $b$ debajo de $a-1$ ¿o algo diferente? Esto no está claro por el contexto y no hay una definición estándar. Creo que el mejor caso es $a$ o $b$ igual a $0$ .
0 votos
Bueno, he utilizado el término "caso medio", ya que se utiliza generalmente para algoritmos como la ordenación, la búsqueda.... Ya sabes... Será igualmente agradable si puedes decirme en pocas palabras sobre cada uno de esos 2 casos que has mencionado.Si no, deja el "caso medio", y por favor, háblame del límite superior y del límite inferior solamente.Incluso eso sería suficiente....Dime lo que puedas sobre ello Hans, esta cosa me ha hecho miserable durante la mitad del día.
0 votos
@Ivy: Hans ha hecho una pregunta muy precisa y ha señalado correctamente que no hay una definición estándar, por lo que remitirle a cómo "se usa generalmente" el término no es útil. En los ejemplos que has citado (ordenar, buscar), suele haber una interpretación obvia y bien definida de "promedio", a saber, que los elementos que hay que ordenar/insertar/buscar aparecen en un orden elegido uniformemente al azar entre todas las permutaciones posibles. En este caso no hay una interpretación tan obvia.
1 votos
Mi falta de conocimientos me impide responder a esta pregunta. Pero sé que el análisis de la complejidad es un tema delicado en el que hay que ser muy cuidadoso a la hora de hacer y responder preguntas.
0 votos
Si un tipo como tu dice "Mi falta de conocimiento......" entonces me pregunto donde esta un tipo como yo.Estoy seguro de que no se ni una fracción de lo que tu sabes sobre estas cosas.Bueno,me alegro de que hayas dicho "el análisis de la complejidad es un tema delicado". Me ayuda a sentirme mejor ya que lucho y me quedo atrás en este tema.Ahora puedo asegurarme de que está bien quedarse atrás inicialmente ya que es un tema delicado y difícil después de todo.Pero por qué molestarse, con foros como estos, nadie está solo....¡¡La gente inteligente está ahí para ayudar a los luchadores como yo!!!
0 votos
Para ampliar la información aquí un gran recurso es ... es.wikipedia.org/wiki/
2 votos
Para futuros lectores: el mejor recurso que he visto sobre esto se encuentra en AOCP de Knuth, Volumen 2 (Capítulo 4.5.1-4.5.3).
0 votos
Hay un artículo de Jonassen y Knuth, "Un algoritmo trivial cuyo análisis no lo es" Journal of Computer and System Sciences 16:3 (junio de 1978), pp. 301-322. No sea demasiado duro consigo mismo.