ALGORITMOS Flashcards
¿En qué consiste la técnica de Backtracking?
Técnica de diseño de algoritmos basada en explorar todo el “árbol” de posibles soluciones (prueba y error) –> Fuerza Bruta
NOTA: Una posible optimización para no “repetir” calculos seria Ramificación y Poda
¿Qué requisito tiene el algoritmo de la búsqueda binaria y que complejidad computacional tiene?
a) Que los datos estén ordenados (array, arbol,…)
b) O(log n)
Ordene, de mas eficiente a menos, estas complejidades: n!, nlogn, n^2, 2^n
n log(n) - n^2 - 2^n - n!
¿En qué consiste cada iteración del algoritmo Radix-Sort?
En distribuir en las colas/urnas los números segun un determinado digito (unidades,decenas,centenas,… o al reves)
NOTA: Necesitamos de un “espacio” adicional
De una definición de la propiedad de “estabilidad” en los algoritmos de ordenación
Mantiene el orden relativo original para claves iguales
¿En qué consiste el algoritmo de inserción binaria?
Que mediante búsqueda binaria obtenemos el lugar donde insertar el elemento a ordenar en cada iteración
¿El algoritmo de ordenación BubleSort siempre presenta un complejidad O(n^2)?
No, en el mejor de los casos seria O(n) -> Se da cuenta si los datos ya están ordenados
¿Qué requisito necesita cualquier función recursiva?
Una condición de parada (CASO BASE)
¿Cómo explicaría el mecanismo que se produce en una llamada a una función?
Cuando se llama a una funcion
g(a,b) { var d,e; .... .... f(b) ----------------> f(b) { .... return ...} .... (1) .... } se introducen en la "pila" los siguientes datos: a) Parametros de entrada b) Variables locales c) DIRECCION DE RETORNO (1) d) Valor de retorno
¿Qué es la complejidad espacial?
Representa la cantidad de espacio adicional (a los datos de entrada) que necesita el algortimo