Qual è la differenza tra software e algoritmo?

Che cos'è un algoritmo? - La definizione di WhatIs.com ha una definizione ragionevole di algoritmo:

Un algoritmo (pronunciato AL-go-rith-um) è una procedura o una formula per risolvere un problema, basata sull'esecuzione di una sequenza di azioni specifiche. Un programma per computer può essere visto come un algoritmo elaborato. In matematica e informatica, un algoritmo di solito significa una piccola procedura che risolve un problema ricorrente.

Quindi un algoritmo potrebbe prendere la forma di una descrizione in linguaggio naturale della sequenza di passi da eseguire. Questo sarebbe leggibile da un umano, ma non direttamente utile per un computer. Un programmatore (generalmente, un umano addestrato e competente) avrebbe bisogno di usare un linguaggio di programmazione per creare un'implementazione software di quell'algoritmo.

Per essere abbastanza interessante da valere la pena di essere pubblicato, un algoritmo di solito deve avere una certa generalità. ad esempio, ordinare i dati, cercare un valore in una collezione di dati, comprimere un flusso audio, decomprimere un flusso audio compresso, e così via. Le tipiche implementazioni di software per computer usano questi algoritmi classici come porzioni di un programma pratico, ma molte considerazioni del mondo reale vengono mescolate nel piatto (da dove vengono i dati da elaborare? Dopo aver elaborato i dati, cosa ne fate? Cosa si fa se l'insieme di dati da elaborare è troppo grande per entrare nella memoria di lavoro del computer? La specifica "accademica" originale dell'algoritmo può ignorare molti di questi dettagli del mondo reale).

Spero che questo risponda alla tua domanda.