Algoritmos de ordenación: ordenan elementos en una lista en función de ciertos criterios, como el orden ascendente o descendente.
Ordenamiento por selección: encuentra el elemento más pequeño en cada iteración y lo coloca en la posición correcta.
Ordenamiento por inserción: construye una sub lista ordenada, insertando elementos de la lista original en la posición adecuada.
Ordenamiento por burbuja: compara elementos adyacentes y los intercambia si están en el orden incorrecto.
Ordenamiento rápido (Quicksort): divide la lista en subgrupos alrededor de un pivote y luego los ordena de forma recursiva.
Ordenamiento por mezcla (Mergesort): divide la lista por la mitad, ordena cada mitad por separado y luego fusiona las mitades ordenadas.
Algoritmos de búsqueda: encuentran la posición de un elemento en una lista o determinan si está presente.
Búsqueda secuencial: recorre secuencialmente una lista de elementos para encontrar uno en particular.
Búsqueda binaria: divide repetidamente una lista ordenada a la mitad hasta encontrar el elemento deseado.
Algoritmos recursivos: se llaman a sí mismos repetidamente para resolver un problema reduciendo su tamaño en cada llamada.
Factorial: calcula el factorial de un número utilizando una función que se llama a sí misma.
Torres de Hanoi: resuelve el problema de mover una torre de discos de un poste a otro, utilizando la recursividad para encontrar el camino más corto.
Algoritmos de gráficos: resuelven problemas relacionados con estructuras de datos de gráficos, como encontrar el camino más corto entre dos nodos.
Búsqueda en amplitud (BFS): explora los nodos en niveles, comenzando desde un nodo inicial.
Búsqueda en profundidad (DFS): explora los nodos tan lejos como sea posible antes de retroceder.
Algoritmos de backtracking: exploran todas las soluciones posibles mediante una búsqueda sistemática y retroceden cuando encuentran una solución no válida.
Problema de las N reinas (N-Queens problem): encuentra todas las formas posibles de colocar N reinas en un tablero de ajedrez sin que se ataquen mutuamente.
Algoritmos de hashing: es una función matemática que toma un "clave" y la transforma en un valor hash, que es una cadena de caracteres de longitud fija. Su propósito principal es generar un resumen único y representativo de la entrada, de manera que cualquier cambio en la entrada resulte en un valor de hash completamente diferente.
Tablas hash: Utilizan una función hash para asignar claves a posiciones de almacenamiento y permiten una búsqueda y recuperación eficientes.
Algoritmos de programación dinámica: dividen un problema en subproblemas más pequeños, resolviendo cada sub problema solo una vez y almacenando su resultado para su uso posterior.
Fibonacci: calcula los números de Fibonacci utilizando una tabla de memorización para evitar cálculos repetitivos.
Problema de la mochila (Knapsack problem): resuelve el problema de cómo llenar una mochila con objetos de diferentes pesos y valores para maximizar el valor total.