Cuál es la diferencia entre software y algoritmo?

¿Qué es un algoritmo? – La definición de WhatIs.com tiene una definición razonable de un algoritmo:

Un algoritmo es un procedimiento o fórmula para resolver un problema, basado en la realización de una secuencia de acciones específicas. Un programa de ordenador puede verse como un algoritmo elaborado. En matemáticas y ciencias de la computación, un algoritmo suele significar un pequeño procedimiento que resuelve un problema recurrente.

Así que un algoritmo podría adoptar la forma de una descripción en lenguaje natural de la secuencia de pasos a realizar. Eso sería legible para un humano, pero no sería directamente útil para un ordenador. Un programador (por lo general, un humano capacitado y con conocimientos) tendría que utilizar un lenguaje de programación para crear una implementación de software de ese algoritmo.

Para que sea lo suficientemente interesante como para que merezca la pena publicarlo, un algoritmo normalmente tiene que tener cierta generalidad, por ejemplo, ordenar datos, buscar un valor dentro de una colección de datos, comprimir un flujo de audio, descomprimir un flujo de audio comprimido, etc. Las implementaciones típicas de los programas informáticos utilizan estos algoritmos clásicos como partes de un programa práctico, pero se mezclan muchas consideraciones del mundo real (¿de dónde vienen los datos que hay que procesar? Después de procesar los datos, ¿qué se hace con ellos? ¿Qué se hace si el conjunto de datos a procesar es demasiado grande para que quepa en la memoria de trabajo del ordenador? La especificación «académica» original del algoritmo puede ignorar muchos de esos detalles del mundo real).

Espero que eso responda a tu pregunta.