Los algoritmos pueden ser expresadossssexpresados de muchas maneras, incluyendo al [[lenguaje natural]], [[pseudocódigo]], [[diagramas de flujo]] y [[Lenguaje de programación|lenguajes de programación]] entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.
La descripción de un algoritmo usualmente se hace en tres niveles: