Bloque2-Tema3-Algoritmos Flashcards
Que es un algoritmo?
Conjunto de reglas aplicadas sistematicamente a unos datos de entrada apropiados, resuelven un problema en un NUMERO FINITO de pasos elementales.
Medidas de expresion de un algoritmo.
-Diagramas de flujo
-Pseudocodigo.
-Sistemas formales.
Tecnicas de analisis y diseño?
-Divide y venceras
-Voraces(Opcion optima en cada paso) (Djistra/ A* / Prim /Kruskal)
-Probalisticas (Montecarlo/las vegas)
-Backtracking (Explora arbol soluciones)
-Ramificacion y poda
-Programacion dinamica (Combinar subproblemas optimos)
Que es la memoizacion (usada en resursividad)?
Es una técnica de optimización que se usa principalmente para acelerar los tiempos de cálculo, almacenando los resultados de la llamada a una subrutina en una memoria intermedia o búfer y devolviendo esos mismos valores cuando se llame de nuevo a la subrutina o función con los mismos parámetros de entrada.
Que es la Cota superior asintótica (Big O Notation)
Una cota superior asintótica es una función que sirve de cota superior de otra función cuando el argumento tiende a infinito.
Tiempo logaritmico ordenado de menos tiempo a mas.
O(1) / O(logN) / O(n) / O(NLogN) / O(N^2) / O(2^N) / O (N!)
Tipos de clasificacion de algoritmos.
-Interno (Memoria) o Externo (fichero)
-Natural/adaptativo (Tarda lo minimo si la entrada esta ordenada)
-Estable (Mantiene orden relativo original para claves iguales)-> Quiere decir que mantiene el orden de los valores duplicados, por ejemplo dos 3, va a tener en el orden que venian ordenados.
Algoritmos de ordenacion de tipo Exchange Sorts?
-Burbuja
-Quicksort
-Cocktail o burbuja bi-direccional
Algoritmos de ordenacion de tipo Selection Sorts?
-Seleccion
-HeapSort
Algoritmos de ordenacion de tipo Insertion Sorts?
-Insercion
-ShellSort (Insercion con pasos mas grandes)
Algoritmos de ordenacion de tipo Merge Sorts?
-Merge sort
Algoritmos de ordenacion de tipo Distribution Sorts?
-Bucket Sort/Binsort
-Radix Sort
ESTOS NO HACEN COMPARACIONES.
Complejidad logaritmica del algoritmo de burbuja
Mejor caso -> O (N)
Caso medio-> O (N^2)
peor caso-> O (N^2)
COmo funciona el algoritmo de burbuja?
Vamos desplazando el Nº mas grande que nos encontramos a base de comparaciones e intercambios entre elementos adyacentes.
Complejidad logaritmica del algoritmo de insercion directa
Mejor caso -> O (N)
Caso medio-> O (N^2)
peor caso-> O (N^2)