Definidos: Cada paso debe ser claro y sin ambigüedades.
Finitos: Deben tener un inicio y un fin.
Entrada: Deben aceptar entradas de datos.
Salida: Deben producir resultados o una salida.
Efectividad: Cada paso del algoritmo debe ser realizable en un tiempo razonable.