La cosa e' un po' piu' complicata
Diciamo che un buon punto di partenza e' questo:
(c'e' anche la versione Italiana, ma la versione inglese e' meglio)
Di libri su algoritmi ce ne sono n-mila, perche' l'ideazione di un algoritmo e' STRETTAMENTE legata alla struttura dati ed a cosa vuoi farci.
I piu' semplici sono:
manipolazione di stringhe
ordinamento
ricerca
poi si passa a "manipolazionie di grafi", con estensioni nei "social network"
quindi a quelli usati in ambito del calcolo numerico, della computer grafica, del machine learning, della simulazione, ...
Ed altri N-milioni di settori specifici...
Esistono algoritmi esatti e quelli approsimati quando quelli esatti non si possono usare: se un algoritmo esatto richiede un mese per risolvere un problema, ed uno approssimato un'oretta ed il risultato di quest'ultimo e' ragionevole, magari quello approssimato puo' andare anche bene.
In pratica, oltre al problema della definizione dell'algoritmo, ti serve conoscere la sua complessita, cioe' quanto bene funziona con numeri grandi di elementi da trattare, ed eventualmente, se non e' esatto, se puoi assicurare un errore predefinito (ad esempio il 10%, il 5% o l'1%).
Insomma, di robba da sapere c'e' ne' a camionate