Análisis de complejidad: Describir cómo crece el tiempo de ejecución o la memoria de un algoritmo a medida que crece el tamaño de la entrada, usando notación O grande.
Lleva a
Listas enlazadas: Nodos dispersos en memoria, cada uno apuntando al siguiente, cambiando indexación rápida por inserción barata.
Búsqueda binaria: Reducir a la mitad repetidamente un rango ordenado para encontrar un objetivo en tiempo logarítmico.
Ordenamientos elementales por comparación: Los ordenamientos simples de O(n al cuadrado), burbuja, inserción, selección, que comparan e intercambian pares de elementos.
Representaciones de grafos: Almacenar los vértices y aristas de un grafo como una matriz de adyacencia o una lista de adyacencia.
Árboles de Fenwick: Una estructura compacta basada en arreglos que responde consultas de suma de prefijos en tiempo logarítmico.
Dos punteros: Recorrer dos índices a través de una secuencia a la vez para evitar un bucle anidado.
Algoritmos de coincidencia de cadenas: Encontrar todas las apariciones de un patrón dentro de un texto más grande más rápido que revisando cada posición.
Temas relacionados
Dos punteros: Recorrer dos índices a través de una secuencia a la vez para evitar un bucle anidado.
Búsqueda binaria: Reducir a la mitad repetidamente un rango ordenado para encontrar un objetivo en tiempo logarítmico.