Lar Finanças Pessoais Os algoritmos de Dummies Cheat Sheet - dummies

Os algoritmos de Dummies Cheat Sheet - dummies

Vídeo: Tutorial fácil de algoritmos de programación 2024

Vídeo: Tutorial fácil de algoritmos de programación 2024
Anonim

Por John Paul Mueller, Luca Massaron

Algoritmos não precisam ser chatos ou difíceis de usar. De fato, os algoritmos o envolvem de várias maneiras que você talvez não tenha pensado, e você os usa todos os dias para realizar tarefas importantes. No entanto, você precisa usar algoritmos sem ter que se tornar um matemático.

Os idiomas de programação permitem que você descreva as etapas usadas para criar um algoritmo. Algumas línguas são melhores do que outras pessoas na realização desta tarefa de forma que as pessoas possam entender sem se tornarem cientistas da computação. O Python facilita o uso de algoritmos porque ele vem com muitos recursos embutidos e estendidos (através de pacotes, conjuntos de dados e outros recursos). Esta Cheat Sheet ajuda você a acessar as dicas mais comuns para tornar seu uso de algoritmos rápido e fácil.

Localizando o Algoritmo que Você Precisa

A tabela a seguir descreve algoritmos e tipos de algoritmos que você pode achar úteis para vários tipos de análise de dados. (Você pode encontrar discussões de todos esses algoritmos em Algorithms For Dummies.)

Algoritmo Descrição Link útil
A * Pesquisa O algoritmo rastreia o custo dos nós à medida que os explora usando o equação: f (n) = g (n) + h (n), onde:

n é o identificador de nó

g (n) é o custo de atingir o nó até agora

h (n) é o custo estimado para alcançar o Objetivo do nó

f (n) é o custo estimado do caminho de n para o objetivo

A idéia é pesquisar os caminhos mais promissores primeiro e evitar caminhos caros.

Standford. edu
Árvore equilibrada Um tipo de árvore que mantém uma estrutura equilibrada através da reorganização para que ela possa fornecer tempos de acesso reduzidos. O número de elementos no lado esquerdo difere do número no lado direito por um no máximo. Webdocs
Pesquisa Bidirecional Esta técnica procura simultaneamente do nó raiz e do nó de objetivo até os dois caminhos de pesquisa se encontrarem no meio. Uma vantagem desta abordagem é que é tempo eficiente porque encontra a solução mais rápida do que muitas outras soluções de força bruta. Além disso, ele usa memória de forma mais eficiente do que outras abordagens e sempre encontra uma solução. A principal desvantagem é a complexidade da implementação. Planejamento. cs
Árvore binária Este é um tipo de árvore que contém nós que se conectam a nós nulos (nós de folha), um ou dois (nós ramificados) outros nós. Cada nó define os três elementos que ele deve incluir para fornecer conectividade e armazenar dados: armazenamento de dados, conexão à esquerda e conexão direta. cs. cmu. edu
Breadth-First Search Esta técnica começa no nó da raiz, explora primeiro cada um dos nós filho, e só então muda para o próximo nível. Ele progride nível por nível até encontrar uma solução. A desvantagem deste algoritmo é que ele deve armazenar cada nó na memória, o que significa que ele usa uma quantidade considerável de memória para um grande número de nós. Esta técnica pode verificar se há nós duplicados, o que economiza tempo e sempre vem com uma solução. Khan Academcy
Brute Force Esta é uma técnica de resolução de problemas em que alguém tenta todas as soluções possíveis, procurando a melhor solução para problemas. As técnicas de força bruta garantem uma solução melhor ajustada quando existe, mas são tão demoradas para implementar que a maioria das pessoas as evita. Igm. univ
Profundidade-Primeira Pesquisa Esta técnica começa no nó da raiz e explora um conjunto de nós filhos conectados até atingir um nó da folha. Ele progride ramo por ramo até encontrar uma solução. A desvantagem deste algoritmo é que ele não pode verificar por nós duplicados, o que significa que ele poderia percorrer os mesmos caminhos do nó mais de uma vez. Na verdade, esse algoritmo pode não encontrar uma solução, o que significa que você deve definir um ponto de corte para evitar que o algoritmo faça uma busca infinita. Uma vantagem desta abordagem é que é eficiente na memória. Hacker Earth
Divide and Conquer Esta é uma técnica de resolução de problemas em que o problema está dividido nas peças mais pequenas possíveis e resolvido usando a abordagem mais simples possível. Esta técnica economiza tempo e recursos consideráveis ​​em comparação com outras abordagens, como a força bruta. No entanto, nem sempre garante um resultado de melhor ajuste. Khan Academy
Dijikstra Este é um algoritmo usado para encontrar o caminho mais curto em um gráfico direcionado, ponderado (com pesos positivos). Geeks for Geeks
Graph Um gráfico é uma espécie de extensão de árvore. Como nas árvores, você possui nós que se conectam para criar relacionamentos. No entanto, ao contrário das árvores binárias, um gráfico pode ter mais de uma ou duas conexões. Na verdade, os nós dos gráficos muitas vezes têm uma infinidade de conexões. Você vê gráficos usados ​​em lugares como mapas para GPS e todos os tipos de outros lugares para os quais a abordagem de cima para baixo de uma árvore não funcionará. Tutoriais
Algoritmos gananciosos Esta técnica de resolução de problemas em que a solução depende da melhor resposta para cada etapa do processo de resolução de problemas. Algoritmos gananciosos geralmente fazem dois pressupostos:

É possível fazer uma única escolha ideal em um determinado passo.

Ao escolher a seleção ideal em cada etapa, é possível encontrar uma solução ideal para o problema geral.

Tutoriais
Greedy Best-First Search (BFS) O algoritmo sempre escolhe o caminho mais próximo do objetivo usando a equação: f (n) = h (n) = h (n)
. Este algoritmo particular pode encontrar soluções bastante rápidas, mas também pode ficar preso em loops, tantas pessoas não consideram uma abordagem ótima para encontrar uma solução. Centurion2 Hashing
Este é um método de previsão da localização de um item de dados específico na estrutura de dados (qualquer que seja a estrutura) antes de procurá-lo. Essa abordagem baseia-se no uso de chaves inseridas em um índice. Uma função hash transforma a chave em um valor numérico que o algoritmo coloca em uma tabela hash. Uma tabela de hash fornece os meios para criar um índice que aponte para elementos em uma estrutura de dados para que um algoritmo possa facilmente prever a localização dos dados. Tutoriais Heap
Esta é uma árvore sofisticada que permite inserções de dados na estrutura da árvore. O uso da inserção de dados torna a classificação mais rápida. Você pode classificar ainda mais essas árvores como montes máximos e montes mínimos, dependendo da capacidade da árvore para fornecer imediatamente o valor máximo ou mínimo presente na árvore. Tutoriais Heurísticas
Esta é uma técnica de resolução de problemas que depende da autodescoberta e produz resultados suficientemente úteis (não necessariamente otimizados, mas bons o bastante) para resolver um problema bem o suficiente para que uma solução melhor não seja ' t necessário. Auto descoberta é o processo de permitir que o algoritmo mostre um caminho potencialmente útil para uma solução (mas você ainda deve contar com intuição e compreensão humana para saber se a solução é a certa). Noroeste. edu MapReduce
Esta é uma estrutura para fazer com que os algoritmos funcionem usando cálculos em paralelo (usando vários computadores conectados em uma rede), permitindo que os algoritmos completem suas soluções mais rapidamente. Hadoop Apache Mergesort
O Mergesort é um método de comparação de dados de propósito geral, baseado em comparação. Depende de uma abordagem de divisão e conquista para executar sua tarefa. Geeks for Geeks Nash Equilibrium
Esta é uma teoria dos jogos em que os outros jogadores conhecem a estratégia de equilíbrio para os outros jogadores, então ninguém tem nada a ganhar ao mudar sua estratégia pessoal. Esta teoria vê uso em qualquer situação hostil em que o jogador deve responder as decisões tomadas por todos os outros jogadores para ganhar o jogo. Khan Academy PageRank
PageRank é um algoritmo para medir a importância de um nó em um gráfico. Este algoritmo está na raiz dos algoritmos principais do Google para alimentar buscas relevantes aos usuários. Princeton. edu Pesquisa heurística pura
Este algoritmo expande os nós em ordem do seu custo. Ele mantém duas listas. A lista fechada contém os nós que já explorou e a lista aberta contém os nós que ainda deve explorar. Em cada iteração, o algoritmo expande o nó com o menor custo possível. Todos os seus nós secundários são colocados na lista fechada e os custos individuais do nó filho são calculados. O algoritmo envia os nós filhos com um baixo custo de volta à lista aberta e exclui os nós filhos com um alto custo. Conseqüentemente, o algoritmo executa uma busca inteligente e baseada em custos para a solução. World of Computing Quicksort
Esta é uma estratégia de classificação de propósito geral baseada em matrizes de particionamento de dados em matrizes menores.Depende de uma abordagem de divisão e conquista para executar sua tarefa. Tutoriais Árvore não balanceada

Esta é uma árvore que coloca novos itens de dados sempre que necessário na árvore, independentemente do equilíbrio. Este método de adicionar itens torna a construção da árvore mais rápida, mas reduz a velocidade de acesso ao procurar ou classificar.

Quora

Algoritmos Diferenciadores de Outras Estruturas Matemáticas Se você é como a maioria das pessoas, muitas vezes você se encontra riscando a cabeça quando se trata de estruturas matemáticas porque ninguém parece saber como usar os termos corretamente. É como se as pessoas tentassem deliberadamente tornar as coisas difíceis! Afinal, o que é uma equação e por que é diferente de um algoritmo? Bem, não tenha medo: a tabela a seguir fornece o guia definitivo para as estruturas de matemática que você pode encontrar, mas tem medo de perguntar.
Estrutura Descrição
Equação Números e símbolos que, quando considerados como um todo, equivalem a um valor específico. Uma equação sempre contém um sinal de igual para que você saiba que os números e símbolos representam o valor específico no outro lado do sinal de igual. As equações geralmente contêm informações variáveis ​​apresentadas como um símbolo, mas não são necessárias para usar variáveis.
Fórmula Uma combinação de números e símbolos usados ​​para expressar informações ou idéias. Uma fórmula normalmente apresenta conceitos matemáticos ou lógicos, como para definir o maior Divisor comum (GCD) de dois inteiros (o vídeo no Khan Academy conta como isso funciona). Geralmente, uma fórmula mostra a relação entre duas ou mais variáveis. A maioria das pessoas vê uma fórmula como um tipo especial de equação.

Algoritmo Uma seqüência de etapas usada para resolver um problema. A seqüência apresenta um método exclusivo de abordar um problema, fornecendo uma solução particular. Um algoritmo não precisa representar conceitos matemáticos ou lógicos, mesmo que as apresentações neste livro muitas vezes se enquadrem nessa categoria, porque as pessoas geralmente usam algoritmos dessa maneira. Algumas fórmulas especiais também são algoritmos, como a fórmula quadrática. Para que um processo represente um algoritmo, ele deve ser o seguinte:

Finito: O algoritmo deve eventualmente resolver o problema.

Bem definido: A série de etapas deve ser precisa e apresentar etapas que são compreensíveis, especialmente por computadores, que devem ser capazes de criar um algoritmo utilizável.

Eficaz:

Um algoritmo deve resolver todos os casos do problema para o qual alguém o definiu. Um algoritmo deve sempre resolver o problema que ele tem para resolver. Mesmo que você antecipe algumas falhas, a incidência de falha é rara e ocorre apenas em situações aceitáveis ​​para o uso do algoritmo pretendido.

Formas incríveis de usar Algoritmos As pessoas realmente usam algoritmos o tempo todo. Por exemplo, fazer o brinde é um exemplo de um algoritmo, conforme explicado nesta publicação no blog. Fazer torradas não é um algoritmo incrível, mas os da tabela a seguir, que usam um computador para executar tarefas, são.
Tarefa Por que é surpreendente
Criptografia Manter os dados seguros é uma batalha contínua com hackers constantemente atacando fontes de dados. Algoritmos permitem analisar dados, colocá-lo em outra forma e, em seguida, devolvê-lo ao seu formulário original mais tarde.
Análise de gráficos A capacidade de decidir sobre a linha mais curta entre dois pontos encontra todo tipo de usos. Por exemplo, em um problema de roteamento, o seu GPS não poderia funcionar sem este algoritmo particular, porque nunca poderia dirigi-lo ao longo das ruas da cidade usando a rota mais curta do ponto A ao ponto B.
geração de números pseudorandom Imagine jogar que nunca variou. Você começa no mesmo local e executa os mesmos passos da mesma maneira toda vez que você joga. Chato! Sem a capacidade de gerar números aparentemente aleatórios, muitas tarefas de computador tornam-se inúteis ou impossíveis.
Agendamento Fazer o uso de recursos justo para todos os interessados ​​é outra maneira pela qual os algoritmos tornam sua presença conhecida de uma maneira grande. Por exemplo, as luzes de sincronismo nas interseções não são mais dispositivos simples que contam os segundos entre as mudanças de luz. Os dispositivos modernos consideram todos os tipos de problemas, como a hora do dia, as condições climáticas e o fluxo de tráfego. O agendamento vem em muitas formas, no entanto. Considere como seu computador executa várias tarefas ao mesmo tempo. Sem um algoritmo de agendamento, o sistema operacional pode pegar todos os recursos disponíveis e manter seu aplicativo de qualquer trabalho útil.
Pesquisando Localizando informações ou verificando que a informação que você vê é a informação que deseja é uma tarefa essencial. Sem essa capacidade, muitas tarefas que você executa online não seriam possíveis, como encontrar o site na Internet que vende a cafeteira perfeita para o seu escritório.
Ordenar Determinar a ordem em que apresentar informações é importante porque a maioria das pessoas hoje sofre de sobrecarga de informações e precisa reduzir a onda de dados. Imagine ir para a Amazon, encontrando mais de mil potes de café à venda, e ainda não conseguindo ordená-los de acordo com o preço ou a revisão mais positiva. Além disso, muitos algoritmos complexos requerem dados na ordem correta para funcionar de forma confiável, de modo que a classificação é um requisito importante para resolver mais problemas.

Transformando

Converter um tipo de dados para outro tipo de dados é fundamental para entender e usar os dados de forma eficaz. Por exemplo, você pode entender os pesos imperiais bem, mas todas as suas fontes usam o sistema métrico. A conversão entre os dois sistemas ajuda você a entender os dados. Da mesma forma, a Transformada de Fourier Rápida (FFT) converte sinais entre o domínio do tempo e o domínio de freqüência, permitindo que coisas como o seu roteador WiFi funcionem.

Lidando com complexidade de algoritmo Você já sabe que os algoritmos são complexos. No entanto, você precisa saber o quão complexo é um algoritmo porque o mais complexo é, quanto mais demora a ser executado. A tabela a seguir ajuda você a entender os vários níveis de complexidade apresentados em ordem de tempo de execução (do mais rápido ao mais lento).
Complexidade Descrição
Complexidade constante O (1) Fornece um tempo de execução invariável, independentemente da quantidade de entrada que você fornecer. Cada entrada requer uma única unidade de tempo de execução.
Complexidade logarítmica O (log n) O número de operações cresce a uma taxa mais lenta do que a entrada, tornando o algoritmo menos eficiente com pequenas entradas e mais eficiente com as maiores. Um algoritmo típico desta classe é a pesquisa binária.
Complexidade linear O (n) As operações crescem com a entrada em uma proporção de 1: 1. Um algoritmo típico é a iteração, quando você digitaliza a entrada uma vez e aplica uma operação a cada elemento dela.
Complexidade linearítmica O (n log n) A complexidade é uma mistura entre a complexidade logarítmica e linear. É típico de alguns algoritmos inteligentes usados ​​para solicitar dados, como Mergesortsort, Heapsort e Quicksort. Complexidade quadrática O (n 2
) As operações crescem como um quadrado do número de entradas. Quando você tem uma iteração dentro de outra iteração (chamada iteração aninhada na ciência da computação), você tem complexidade quadrática. Por exemplo, você tem uma lista de nomes e, para encontrar os mais parecidos, você compara cada nome com todos os outros nomes. Alguns algoritmos de ordenação menos eficientes apresentam tal complexidade: tipo de bolha, classificação de seleção e classificação de inserção. Esse nível de complexidade significa que seus algoritmos podem ser executados por horas ou mesmo dias antes de alcançar uma solução. Complexidade cúbica O (n 3
) As operações crescem ainda mais rápido do que a complexidade quadrática porque agora você possui várias iterações aninhadas. Quando um algoritmo tem essa ordem de complexidade e você precisa processar uma quantidade modesta de dados (100 000 elementos), seu algoritmo pode ser executado por anos. Quando você tem uma série de operações que é uma potência da entrada, é comum referir o algoritmo como sendo executado em tempo polinomial. Complexidade exponencial O (2 n
) O algoritmo leva duas vezes o número de operações anteriores para cada novo elemento adicionado. Quando um algoritmo tem essa complexidade, mesmo pequenos problemas podem demorar para sempre. Muitos algoritmos que fazem buscas exaustivas têm complexidade exponencial. No entanto, o exemplo clássico para esse nível de complexidade é o cálculo dos números Fibonacci. Complexidade fatorial O (n!) Este algoritmo apresenta um pesadelo real de complexidade devido ao grande número de combinações possíveis entre os elementos. Imagine: se a sua entrada é de 100 objetos e uma operação em seu computador leva 10 -6 segundos (uma velocidade razoável para cada computador hoje em dia), você precisará de cerca de 10 140 anos para completar a tarefa com sucesso (uma quantidade impossível de tempo porque a idade do universo é estimada em 10
14 anos). Um problema de complexidade fatorial famoso é o problema dos vendedores ambulantes, em que um vendedor deve encontrar a rota mais curta para visitar muitas cidades e voltar para a cidade inicial.

Os algoritmos de Dummies Cheat Sheet - dummies

Escolha dos editores

Como Ganhar Dinheiro através de Investimentos para o Exame de Licença de Imóveis - dummies

Como Ganhar Dinheiro através de Investimentos para o Exame de Licença de Imóveis - dummies

O O Exame da Licença de Imóveis exigirá que você saiba que você pode ganhar dinheiro de várias maneiras diferentes, como a valorização do capital, o aluguel e a acumulação de capital, investindo em imóveis. Como agente (e como examinador), você precisa estar familiarizado com todos os métodos de criação de dinheiro e a terminologia apropriada. O ...

Como estimar o valor com a Abordagem de capitalização de renda para o exame de licença de imóveis

Como estimar o valor com a Abordagem de capitalização de renda para o exame de licença de imóveis

Um método que será coberto no exame de licença de imóveis para avaliação de imóveis com base em seu rendimento é conhecido como a abordagem de capitalização de renda. Esse método converte a renda de uma propriedade em uma estimativa de seu valor. Os avaliadores usam geralmente este método para edifícios comerciais, como centros comerciais, prédios de escritórios, ...

Como usar as taxas de igualação para o exame da licença de imóveis - dummies

Como usar as taxas de igualação para o exame da licença de imóveis - dummies

Você pode ter para fazer um problema no Exame de Licença de Imóveis usando taxas de equalização, às vezes chamadas de fatores de equalização, para descobrir um imposto de propriedade do condado (em oposição a um imposto de propriedade de cidade, cidade ou vila), então tenha certeza de que está preparado. Em uma situação simples, várias cidades, cidades e aldeias dentro de um município ...

Escolha dos editores

Como adicionar fórmulas de vinculação a folhas de trabalho do Excel 2013 - dummies

Como adicionar fórmulas de vinculação a folhas de trabalho do Excel 2013 - dummies

São fórmulas que transferem uma constante ou outra fórmula para um novo local na mesma planilha, na mesma pasta de trabalho ou mesmo em uma pasta de trabalho diferente sem copiá-la para sua nova localização. Quando você cria uma fórmula de ligação, traz a fórmula constante ou original para uma nova localização para que o resultado ...

Como adicionar Diagramas e listas de SmartArt no Excel 2010 - manequins

Como adicionar Diagramas e listas de SmartArt no Excel 2010 - manequins

Com objetos gráficos SmartArt do Excel 2010 , você pode construir rápida e facilmente listas gráficas e diagramas extravagantes em sua planilha. As listas e os diagramas do SmartArt vêm em uma ampla variedade de configurações (incluindo um monte de gráficos organizacionais e vários diagramas de processo e fluxo) que permitem combinar seu próprio texto com as formas gráficas predefinidas. ...

Como adicionar títulos ao Excel 2007 Gráficos - manequins

Como adicionar títulos ao Excel 2007 Gráficos - manequins

Você pode adicionar títulos a um gráfico para ajudar a descrever seu propósito. Por padrão, os títulos não são adicionados quando você cria um gráfico básico, mas você pode adicioná-los mais tarde manualmente. Além de um título do gráfico principal que geralmente é exibido acima de um gráfico, você pode adicionar títulos descritivos ao eixo dos x (eixo da categoria) ...

Escolha dos editores

Evernote: Sobre a exportação de notas - manequins

Evernote: Sobre a exportação de notas - manequins

A evernote tem vários recursos úteis, embora pouco conhecidos e menos usados que ajudam a tornar a experiência mais completa, mais segura e mais agradável. Importar e exportar notas pode ser extremamente útil para armazenar informações como um arquivo e criptografar notas garante que suas informações privadas sejam protegidas. As três Leis da Proteção de Dados da Evernote são ...

4 Maneiras de usar o Evernote em seu navegador - dummies

4 Maneiras de usar o Evernote em seu navegador - dummies

Aqui é como você pode usar o Evernote em qualquer um dos quatro navegadores mais comuns: Chrome, Safari, Firefox e Internet Explorer. Primeiro, você precisará instalar o Evernote's Web Clipper. Use o Evernote no Chrome Se você não possui o Chrome, baixe-o no Google Chrome. Quando você tem o Chrome, você está pronto para instalar o Web Clipper. Siga estas etapas: ...

Evernote: adicione seu endereço a contatos de dispositivos móveis - manequins

Evernote: adicione seu endereço a contatos de dispositivos móveis - manequins

Dispositivos móveis têm um fácil uso -clique as soluções para salvar seu endereço de e-mail Evernote nos contatos. Veja como adicionar seu endereço aos contatos em vários dispositivos móveis diferentes. Adicionando o seu endereço a dispositivos iOS Em um iPhone, iPod touch ou iPad, siga estas etapas para adicionar sua conta de e-mail aos seus contatos: Abra o Evernote ...