Principais famílias de algoritmos Intercalação (Divisão e Conquista) Incremental Distribuição Algoritmos Aleatórios Principais Estruturas de Dados Vetor Listas Encadeada Heap Pilha (LIFO) Fila (FIFO) Árvore Binária Tabela Hash Armazenar elementos sem saber o número de elementos a se armazenar? Armazenar elementos sem saber o número de elementos a se armazenar? LISTA ENCADEADA Mesclar duas bases de dados de produtos que já estão ordenadas pelo campo preço. A nova base deve continuar ordenada? Mesclar duas bases de dados de produtos que já estão ordenadas pelo campo preço. A nova base deve continuar ordenada. MERGE Uma estrutura para se pesquisar por um nome em uma lista de nomes que podem estar em alguma ordem? Uma estrutura para se pesquisar por um nome em uma lista de nomes que podem estar em alguma ordem? Busca rápida do ultimo elemento inserido? Busca rápida do ultimo elemento inserido? PILHA Busca rápida do menor valor de elemento inserido? Busca rápida do menor valor de elemento inserido? Qualquer algoritmo de lista de prioridades, como por exemplo o HEAP. Contar o número de empregados de cada faixa etária tem uma empresa? Algoritmo baseado no BUCKET SORT Retornar o funcionário de uma empresa pelo seu código? Retornar o funcionário de uma empresa pelo seu código? Uma estrutura de índices, como o VETOR Ordenar uma grande base de dados desorganizada por qualquer critério (campo)? Ordenar uma grande base de dados desorganizada por qualquer critério (campo)? QUICKSORT Busca de um elemento em um vetor ordenado? Busca de um elemento em um vetor ordenado? BUSCA BINÁRIA Busca de X elementos em um vetor não ordenado. Busca de X elementos em um vetor não ordenado. QUICKSORT + BUSCA BINÁRIA