Em ciência da computação, algoritmos dependem de estruturas de dados , a fim de executar as suas tarefas de forma eficiente e eficaz. Uma vez que uma estrutura de dados tem sido posto em prática , os algoritmos podem ser desenvolvidos, testados e executados. As estruturas de dados e algoritmos são usados em praticamente todos os programas de software de computador disponíveis hoje. Sobre Estruturas de Dados
em ciência da computação , uma estrutura de dados é uma forma de organizar e armazenar dados; estruturas de dados procuram maximizar a eficiência de armazenamento e recuperação de dados em um computador. Diferentes tipos de estruturas de dados são adequados para diferentes tarefas - por exemplo , B -árvores são muitas vezes utilizados para o gerenciamento de bancos de dados , enquanto que as tabelas de hash são usados para compiladores. Concepção e implementação de uma estrutura de dados eficiente é essencial para a concepção de algoritmos eficientes para um programa de computador.
Sobre Algoritmos
Na ciência da computação , um algoritmo é um conjunto de instruções inequívocas usado para obter uma saída específica para qualquer legítimo - isto é, reconhecida - de entrada. Algoritmos dependem de estruturas de dados para ser bem sucedido - não deve haver uma estrutura de dados em lugar antes algoritmos podem ser desenvolvidos e testados . É por isso que alguns programadores de computador acredita que o segredo para o desenvolvimento de um bom software de computador reside na concepção e utilização de estruturas de dados eficientes em vez de algoritmos inteligentes.
Força Bruta Algoritmos
< br >
tipos "força bruta" são alguns dos algoritmos mais básicos e diretos. Como o nome indica , os algoritmos de força bruta requerer a declaração do problema a ser resolvido , bem como definições explícitas de seus vários componentes , a fim de funcionar corretamente . Em programação de computadores, algoritmos de força bruta são usados para calcular fatoriais, exponenciação , para multiplicar matrizes ou para procurar a chave de um valor em uma lista especificada.
Divide ( ou redução) and Conquer Algoritmos
dividir e conquistar são alguns dos algoritmos mais conhecidos , e eles são normalmente utilizados para a construção de algoritmos recursivos - uma espécie de loop de feedback positivo. Fiel ao seu nome , dividir e conquistar algoritmos dividir um problema em dois problemas menores que cada um mais fácil de lidar e resolver separadamente , as soluções separadas são então combinados para resolver o problema original. Em queda e conquistar algoritmos , o problema original é reduzido a um tamanho que o algoritmo pode gerenciar. Uma vez que se encontra a solução, ele é escalado de volta para resolver o problema original. Diminuir e conquistar algoritmos também são conhecidos como algoritmos indutivos ou incrementais.
Transform and Conquer Algoritmos
Transform e conquistar algoritmos resolver problemas de programação em uma das três formas, todas dos quais envolvem a transformação - ou traduzir - o problema para algo mais gerenciável. Um algoritmo de transformar e conquistar pode transformar o problema de um exemplo mais simples do mesmo problema , num processo conhecido como " exemplo simplificação . " Eles também podem transformar o problema de uma nova representação do problema , que é chamado de "mudança de representação . " Por fim, transformar e conquistar algoritmos também pode traduzir o problema em um problema diferente, que é mais fácil de resolver, " . Redução problema " este último método é chamado