Um algoritmo ganancioso é um processo matemático que procura soluções simples e fáceis de implementar para problemas complexos e de múltiplos passos, decidindo qual o próximo passo que proporcionará o benefício mais óbvio.
Such algoritmos são chamados de gananciosos porque enquanto a solução ótima para cada instância menor proporcionará uma saída imediata, o algoritmo não considera o problema maior como um todo. Uma vez tomada uma decisão, ela nunca é reconsiderada.
Algoritmos gananciosos funcionam construindo recursivamente um conjunto de objetos a partir das menores partes constituintes possíveis. A recursividade é uma abordagem de resolução de problemas em que a solução de um problema em particular depende de soluções para instâncias menores do mesmo problema. A vantagem de usar um algoritmo ganancioso é que as soluções para instâncias menores do problema podem ser simples e fáceis de entender. A desvantagem é que é inteiramente possível que as soluções mais otimizadas a curto prazo possam levar ao pior resultado possível a longo prazo.
Algoritmos gananciosos são freqüentemente usados em redes móveis ad hoc para encaminhar pacotes de forma eficiente com o menor número de lúpulos e o menor atraso possível. Eles também são usados na aprendizagem de máquinas, inteligência de negócios (BI), inteligência artificial (IA) e programação.
Veja também: Princípio KISS, Ockham's razor