Se l'uso specifico dell'algoritmo è importante per il lavoro, allora dovresti citare ciò che specificamente hai usato o implementato, e anche citare la più ampia / vecchia classe di algoritmi sarebbe strettamente facoltativo. Usando l'esempio del quicksort, ce ne sono molte dozzine di varietà che hanno la stessa idea generale ma hanno caratteristiche e prestazioni diverse. Se hai usato l'articolo del 1961 come riferimento per la tua implementazione, ovviamente lo citeresti. Se hai utilizzato la funzione di ordinamento Java o C ++ (che sono diverse e sono cambiate tra le versioni: mergesort, timsort, ibrido, ecc.), Lo diresti semplicemente e non avrai bisogno di cercare su cosa si basava.
D'altra parte, se l'ordinamento non è una parte importante del lavoro (importa solo che sia stato ordinato, non come l'hai ordinato), è comune e accettato non preoccuparsi di citare ogni minimo dettaglio come Questo. Nella maggior parte dei casi il modo in cui qualcosa è stato ordinato è così poco importante da non essere nemmeno menzionato nel testo, ma ovviamente se il tuo lavoro è sugli algoritmi di ordinamento (e in una tesi) dovresti essere più dettagliato e citare liberamente.
Poiché questo non è per una conferenza ma per una tesi, e possibilmente parte di un corso graduato, probabilmente dovresti citarlo comunque, possibilmente sia l'originale che qualsiasi altra fonte che hai effettivamente usato come riferimento (libro di testo, libreria di codici, qualunque cosa). Soprattutto a livello inferiore al dottorato, è molto più probabile che gli istruttori preferiscano un uso intensivo di citazioni e ho saputo che molti professori si lamentano per mancanza di citazioni di cose che non ci si preoccuperebbe di menzionare o citare in un articolo vero .