Normalmante los algoritmos se asocian con estructuras de datos. Un algoritmo es una secuencia de instrucciones que realizan una tarea en un periodo de tiempo finito. El algoritmo recibe cero o más entradas, produce al menos una salida, consiste en instrucciones claras y poco ambiguas, termina después de un número finito de pasos, y es lo suficientemente básico que una persona puede llevar a cabo el algoritmo utilizando lápiz y papel. Por el contrario, un programa no es necesariamente finito: el programa, como un servidor Web, podría no terminar nunca si no hay intervención externa. Algunos ejemplos de algoritmos asociados con estructuras de datos son: búqueda-lineal, ordenación-de-burbuja, búsqueda-binaria, concatenación-de-listas-enlazadas, etc.