Si tratta decisamente di una FAQ. Tra le centinaia di thread al proposito, segnalerei questo che, oltre ad essere uno dei più recenti, coniuga caratteristiche di chiarezza e approfondimento teorico degli algoritmi impiegati alla presentazione del banale codice C funzionante, facilmente adattabile a C++.
Ulteriori considerazioni analoghe sono contenute in questo thread.
Inoltre, una ricerca nel presente forum ti fornirà numerosi altri risultati simili.