In informatica un algoritmo si dice in loco oppure in place quando è in grado di trasformare una struttura dati utilizzando soltanto un piccolo e costante spazio di memoria extra. I dati in ingresso sono solitamente sovrascritti con il risultato prodotto durante l'esecuzione dell'algoritmo.
Un algoritmo è a volte chiamato in modo informale in loco quando sovrascrive i suoi input con i suoi output. In realtà questo non è sufficiente (come dimostra il caso del quicksort) né è necessario; la quantità di spazio occupato dall'output potrebbe essere costante, oppure potrebbe non essere nemmeno quantificabile, per esempio nel caso di output su stream. D'altro canto a volte potrebbe essere più pratico quantificare lo spazio occupato dai risultati in output e determinare se l'algoritmo è definibile come in loco, come si vede nell'esempio di rovesciamento sottostante.
Gli algoritmi in loco sono più efficienti in termini di memoria e, spesso, anche in termini di CPU, rispetto alle controparti non in loco e tendono quindi ad essere preferiti rispetto a questi ultimi.