Algoritmos Para Leigos
VITRINE Os TOP de vendas !!
Quem viu este produto , comprou
-
Construindo uma Aplicação E-commerce com MEAN - Desenvolva uma aplicação de e-commerce do começo ao
VITRINE Os TOP de vendas !!
-
Data Science para Profissionais - Utilizando R
VITRINE Os TOP de vendas !!
Veja a estatística de maneira simples e prática, revendo ou aprendendo conceitos importantes, como inferência. Aprenda a enxergar através dos dados, estruturados ou não, criando trabalhos de inferência, regressão, classificação e agrupamento. Veja como utilizar a linguagem R de um jeito descomplicado! Crie sistemas de Deep Learning utilizando o TensorFlow, da Google. TensorFlow? Em R? Sim!!! Aprenda a criar belas apresentações gráficas seguindo o conceito de “storytelling”. Um guia simples e completo com práticas, ferramentas e exemplos reais. ... Ler mais +
QUERO VER -
Produzindo Games com UNREAL ENGINE - Acompanha CD Produzindo Games com UNREAL ENGINE - Acompanha CD
VITRINE Os TOP de vendas !!
-
Algoritmos com JavaScript para Iniciantes Algoritmos com JavaScript para Iniciantes
VITRINE Os TOP de vendas !!
-
Programação Orientada a Objetos Usando Java Programação Orientada a Objetos Usando Java
VITRINE Os TOP de vendas !!
-
VITRINE Os TOP de vendas !!
-
Crie Aplicativos Web com HTML, CSS, JavaScript, PHP, PostgreSQL, Bootstrap, AngularJS e Laravel
VITRINE Os TOP de vendas !!
-
Lauren Ipsum - Uma história sobre ciência da computação e outras coisas improváveis
VITRINE Os TOP de vendas !!
Lauren Ipsum é uma jornada fantástica através de uma terra onde a lógica e a ciência da computação ganham vida.
QUERO VER
Conheça Lauren, uma aventureira perdida em Usuariolândia, que precisa resolver uma série de quebra-cabeças para encontrar o caminho para casa. À medida que visita lugares como o Café Inserção & Remoção e faz amizade com pessoas como Hugo Rústico e o Caixeiro-Viajante, Lauren aprende ciência da computação sem sequer se dar conta de que está aprendendo – e você também!... ... Ler mais + -
Desenvolvendo Web Components - UI do jQuery ao Polymer
VITRINE Os TOP de vendas !!
Não importa sua experiência com bibliotecas como jQuery e Polymer, este livro ensina, aos desenvolvedores JavaScript, as manipulações do DOM que essas bibliotecas realizam. Você aprenderá a montar um widget básico com JavaScript pura, para depois convertê-lo em um Web Component semântico, declarativo, encapsulado, consumível e de fácil manutenção. ... Ler mais +
QUERO VER -
Vida de Programador - Volume 0 - /* coleção de tirinhas e outras histórias */
VITRINE Os TOP de vendas !!
-
Iniciação à Programação de Computadores - Uma Abordagem Baseada em Exemplos
VITRINE Os TOP de vendas !!
-
Desenvolvendo Games com Unity 3D - Space Invasion Desenvolvendo Games com Unity 3D - Space Invasion
VITRINE Os TOP de vendas !!
-
Desenvolvimento em Pro Drupal 7 - 3ª Edição
VITRINE Os TOP de vendas !!
O livro possui foco no desenvolvedor, responsável pela criação e extensão da capacidade de um web site baseado em Drupal. A obra cobre tudo: os fundamentos da plataforma Drupal; o entendimento de como usar as APIs de Drupal; a escrita de módulos próprios para estender a funcionalidade de Drupal; a escrita de código seguro; a construção de web sites de alto desempenho; e outros tópicos que ajudarão o leitor ao longo do caminho para se tornar um especialista em Drupal. ... Ler mais +
QUERO VER -
Informática Aplicada à Educação: algumas reflexões e práticas
VITRINE Os TOP de vendas !!
-
SciLab - Uma Abordagem Prática e Didática - 2ª Edição Revista, Ampliada e Atualizada
VITRINE Os TOP de vendas !!
-
Oracle Forms Developer - Fundamental Oracle Forms Developer - Fundamental
VITRINE Os TOP de vendas !!
-
Lógica de Programação - Aprendendo a Programar Lógica de Programação - Aprendendo a Programar
VITRINE Os TOP de vendas !!
-
Desenvolvendo Aplicações em Kylix
VITRINE Os TOP de vendas !!
Tudo sobre como administrar a ferramenta RAD, das etapas de desenvolvimento inicial à distribuição de aplicações baseadas na Web. Traz detalhes sobre as estruturas, aplicações de bancos de dados e conjuntos de dados de RAD do Kilyx, ampliando o editor de código, usando Internet Direct para criar clientes e servidores de soquete e muito mais. ... Ler mais +
QUERO VER -
*ESGOTADO* Tcl/TK - Guia de Consulta Rápida .
VITRINE Os TOP de vendas !!
-
VITRINE Os TOP de vendas !!
Conheça dispositivos de leitura, processos de produção e modelos de negócio Se editores e autores trabalharem juntos e conectados à demanda do mercado, verão que existe espaço para livros impressos e digitais caminharem juntos tranquilamente por muito tempo. ... Ler mais +
QUERO VER -
VITRINE Os TOP de vendas !!
O Spring é uma brisa de renovação soprando sobre o panorama de Java. Baseado em um princípio de projeto chamado Inversão de Controle, o Spring é um framework eficiente, porém leve, que não exige o uso de EJBs. O Spring reduz significativamente a complexidade do uso de interfaces, agiliza e simplifica o desenvolvimento de uma aplicação. O usuário obtém os recursos eficientes e robustos de EJB, e consegue manter a simplicidade do JavaBean não-enterprise. Spring em Ação apresenta os conceitos inerentes ao Spring e inicia imediatamente uma exploração prática desse framework. Combinando pequenos trechos de código e um exemplo progressivo desenvolvido ao longo do livro, mostra como construir aplicações J2EE simples e eficientes. ... Ler mais +
QUERO VER -
Programando em C Volume II - A Biblioteca Padrão de C
VITRINE Os TOP de vendas !!
C continua sendo uma das linguagens de programação mais populares em termos de postos de trabalho e programas publicamente disponíveis. ... Ler mais +
QUERO VER -
VITRINE Os TOP de vendas !!
Aumente o poder de ASP para criar páginas da Web dinâmicas e aplicações que ampliem a funcionalidade em nível de servidor. Atualizado e repleto de scripts prontos para execução, este livro é um guia prático que abrange todos os assuntos relacionados a este tema, desde as características fundamentais do ASP até a criação de aplicações para a Web consistentes orientadas a banco de dados. As aplicações, scripts e fragmentos de código que fazem parte do CD são abordadas no texto, facilitando a navegação através do conteúdo do livro. O livro contém definições de processos para criação de uma loja virtual e de um site de leilão online. Acompanha um CD-ROM para auxiliar no aprendizado. ... Ler mais +
QUERO VER -
RFID (Radio Frequency Identification) - Conceitos Aplicabilidade e Impactos
VITRINE Os TOP de vendas !!
Quem viu este produto , também se interessou
-
Primeiros Passos com Sensores - Perceba o mundo usando eletrônica, Arduino e Raspberry Pi
VITRINE Os TOP de vendas !!
-
Desenvolvimento de Software I - Conceitos Básicos - Série Tekne
VITRINE Os TOP de vendas !!
Idealizado com o intuito de oferecer os subsídios necessários para uma formação qualificada, esta obra ajuda o leitor a compreender o desenvolvimento dos principais algoritmos de manipulação de estruturas de dados e as características de cada uma delas. Também oferece técnicas de programação para a solução de problemas. ... Ler mais +
QUERO VER -
VITRINE Os TOP de vendas !!
-
Lógica de Programação - Aprendendo a Programar Lógica de Programação - Aprendendo a Programar
VITRINE Os TOP de vendas !!
-
Desenvolvendo Web Components - UI do jQuery ao Polymer
VITRINE Os TOP de vendas !!
Não importa sua experiência com bibliotecas como jQuery e Polymer, este livro ensina, aos desenvolvedores JavaScript, as manipulações do DOM que essas bibliotecas realizam. Você aprenderá a montar um widget básico com JavaScript pura, para depois convertê-lo em um Web Component semântico, declarativo, encapsulado, consumível e de fácil manutenção. ... Ler mais +
QUERO VER -
FXRuby - Crie GUIs Enxutas e Excelentes com o Ruby
VITRINE Os TOP de vendas !!
-
Desenvolvendo Aplicações em Kylix
VITRINE Os TOP de vendas !!
Tudo sobre como administrar a ferramenta RAD, das etapas de desenvolvimento inicial à distribuição de aplicações baseadas na Web. Traz detalhes sobre as estruturas, aplicações de bancos de dados e conjuntos de dados de RAD do Kilyx, ampliando o editor de código, usando Internet Direct para criar clientes e servidores de soquete e muito mais. ... Ler mais +
QUERO VER -
Desenvolvendo Aplicações PALM com NS BASIC
VITRINE Os TOP de vendas !!
-
Modelagem Visual com Rational Rose 2000 e UML
VITRINE Os TOP de vendas !!
-
Tutorial JavaServer Faces com PrimeFaces, CDI e WildFly - Volume 2
VITRINE Os TOP de vendas !!
-
Programando em C Volume II - A Biblioteca Padrão de C
VITRINE Os TOP de vendas !!
C continua sendo uma das linguagens de programação mais populares em termos de postos de trabalho e programas publicamente disponíveis. ... Ler mais +
QUERO VER -
Iniciação à Programação de Computadores - Uma Abordagem Baseada em Exemplos
VITRINE Os TOP de vendas !!
-
Desenvolvimento em Pro Drupal 7 - 3ª Edição
VITRINE Os TOP de vendas !!
O livro possui foco no desenvolvedor, responsável pela criação e extensão da capacidade de um web site baseado em Drupal. A obra cobre tudo: os fundamentos da plataforma Drupal; o entendimento de como usar as APIs de Drupal; a escrita de módulos próprios para estender a funcionalidade de Drupal; a escrita de código seguro; a construção de web sites de alto desempenho; e outros tópicos que ajudarão o leitor ao longo do caminho para se tornar um especialista em Drupal. ... Ler mais +
QUERO VER -
Spring Data JPA - Persistência Simples e Eficaz Spring Data JPA - Persistência Simples e Eficaz
VITRINE Os TOP de vendas !!
-
Introdução às Expressões Regulares
VITRINE Os TOP de vendas !!
Se você é um programador que ainda não tem experiência com expressões regulares, este livro de fácil compreensão é um ótimo ponto de partida. Você aprenderá os conceitos fundamentais, passo a passo, com o auxílio de inúmeros exemplos, descobrindo em primeira mão como associar, extrair e transformar textos ao fazer correspondências usando palavras, caracteres e padrões específicos... ... Ler mais +
QUERO VER -
Struts 2 Projeto e Programação
VITRINE Os TOP de vendas !!
-
Linguagem de Programação COBOL para Mainframe
VITRINE Os TOP de vendas !!
-
Informática Aplicada à Educação: algumas reflexões e práticas
VITRINE Os TOP de vendas !!
-
Vida de Programador - Volume 0 - /* coleção de tirinhas e outras histórias */
VITRINE Os TOP de vendas !!
-
RFID (Radio Frequency Identification) - Conceitos Aplicabilidade e Impactos
VITRINE Os TOP de vendas !!
-
Desenvolvendo Games com Unity 3D - Space Invasion Desenvolvendo Games com Unity 3D - Space Invasion
VITRINE Os TOP de vendas !!
-
*ESGOTADO* Tcl/TK - Guia de Consulta Rápida .
VITRINE Os TOP de vendas !!
-
Construindo Chatbots com Python Construindo Chatbots com Python
VITRINE Os TOP de vendas !!
-
Algoritmos - Programação para Iniciantes - 2ª Edição Revisada
VITRINE Os TOP de vendas !!
Este livro tem por objetivo apresentar os fundamentos da lógica para a programação de computadores, capacitando o leitor a construir algoritmos estruturados, e traz assuntos e exercícios baseados em experiências reais do autor vivenciadas em sala de aula. A leitura não exige maior conhecimento do assunto por parte do leitor, mas apenas familiaridade com a operação do microcomputador. Voltado para estudantes dos cursos técnicos introdutórios em programação de computadores, aplicados nas áreas de Informática, Ciência da Computação, Engenharias, técnico profissionalizante de nível médio e outras, o livro apresenta como principais características uma nova linguagem estruturada para a construção de algoritmos, texto renovado e atual, fortemente baseado na didática utilizada em aulas de programação, intensa carga de exercícios resolvidos e problemas propostos, além de curiosidades sobre computadores, algoritmos e programação, estimulando o interesse do leitor pelo assunto. ... Ler mais +
QUERO VER
- DescriçãoAlgoritmos Para Leigos
Algoritmos Para Leigos é um guia claro e conciso para pessoas comuns interessadas em algoritmos e no seu impacto em nossas vidas digitais. Partindo do fato de que já vivemos em um mundo em que algoritmos estão por trás da maior parte da tecnologia que usamos, este livro oferece informações reveladoras sobre a importância dessa ciência matemática — como ela ajuda na ingestão diária de notícias e entretenimento, assim como sua influência no consumo e interações sociais. Você vai até aprender a programar um algoritmo usando Python!
Abra este livro e descubra…
• Como se tornar expert nas principais áreas que englobam algoritmos;
• A incrível história por trás dos algoritmos;
• Como usar aplicações reais em procedimentos de resolução de problemas;
• Como desenvolver um algoritmo do início ao fim usando Python. - Sobre o Autor
- Especificação
Características
Tipo de Livro Livro Físico Especificações
Sobre o Autor John Mueller
É autor e editor técnico freelancer. Ele tem a escrita correndo nas veias, tendo produzido 102 livros e mais de 600 artigos até hoje. Os tópicos variam de networking a inteligência artificial e de gerenciamento de bases de dados a programação pura. Alguns dos seus livros atuais incluem um livro sobre Python para iniciantes, Python para data science e um livro sobre MATLAB. Ele também escreveu livros sobre a Amazon Web Services para Administradores, segurança de aplicativos web, desenvolvimento de HTML5 com JavaScript e CSS3. Suas habilidades de revisor técnico ajudaram mais de 63 autores a refinarem o conteúdo de seus manuscritos. John também ofereceu seus serviços de editoria técnica a várias revistas especializadas. Foi durante o período na revista Data Based Advisor que John teve o primeiro contato com o MATLAB, e continuou acompanhando sua evolução desde então. Durante o período na Cubic Corporation, John teve contato com a engenharia de confiabilidade e seguiu com seu interesse em probabilidade.
Luca Massaron
É cientista de dados e diretor de pesquisa de marketing especializado em análise estatística multivariada, machine learning e visão do cliente. Tem mais de uma década de experiência em resolver problemas reais e gerar valor para grupos interessados aplicando raciocínio lógico, estatística, mineração de dados e algoritmos. Apaixonado por tudo que diz respeito a dados e análises e por demonstrar a potencialidade da descoberta de conhecimento orientado a dados, tanto para especialistas quanto para leigos, Luca é coautor de Python for Data Science For Dummies e Machine Learning Para Leigos. Preferindo simplicidade à sofisticação desnecessária, ele acredita que muito pode ser conquistado pela compreensão simples e pela prática do essencial de qualquer disciplina.Informações Técnicas Sumário
INTRODUÇÃO? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1
Sobre Este Livro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Penso que... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Ícones Usados Neste Livro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Além Deste Livro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
De Lá para Cá, Daqui para Lá . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
PARTE 1: COMEÇANDO? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 7
CAPÍTULO 1: Introduzindo Algoritmos ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?9
Descrevendo Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Definindo os usos dos algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Encontrando algoritmos em todo lugar . . . . . . . . . . . . . . . . . . . . . 14
Usando Computadores para Resolver Problemas . . . . . . . . . . . . . . . 15
Alavancando CPUs e GPUs modernas . . . . . . . . . . . . . . . . . . . . . . 16
Trabalhando com chips de propósito especial . . . . . . . . . . . . . . . 17
Alavancando redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Alavancando dados disponíveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Distinguindo Questões de Soluções . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Sendo correto e eficiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Descobrindo que não há almoço grátis . . . . . . . . . . . . . . . . . . . . . 21
Adaptando a estratégia ao problema . . . . . . . . . . . . . . . . . . . . . . . 21
Descrevendo algoritmos em uma língua franca . . . . . . . . . . . . . . 21
Enfrentando problemas difíceis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Estruturando Dados para Obter uma Solução . . . . . . . . . . . . . . . . . . 22
Entendendo o ponto de vista do computador . . . . . . . . . . . . . . . 22
Organizar dados faz a diferença . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
CAPÍTULO 2: Considerando o Design de Algoritmos ? ? ? ? ? ? ? ?25
Começando a Resolver um Problema . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Modelando problemas reais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Encontrando soluções e contraexemplos . . . . . . . . . . . . . . . . . . . 28
Subindo nos ombros de gigantes . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Dividindo e Conquistando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Evitando soluções de força bruta. . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Começando por tornar as coisas mais simples . . . . . . . . . . . . . . . 31
Fragmentar um problema geralmente é melhor . . . . . . . . . . . . . 32
Aprendendo que a Gula Pode Ser Boa . . . . . . . . . . . . . . . . . . . . . . . . . 33
Aplicando raciocínio guloso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Chegando a uma boa solução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Calculando Custos e Seguindo Heurísticas . . . . . . . . . . . . . . . . . . . . . 35
Representando o problema como um espaço . . . . . . . . . . . . . . . 35
Indo ao acaso e sendo abençoado pela sorte . . . . . . . . . . . . . . . . 3
Usando heurística e uma função de custo . . . . . . . . . . . . . . . . . . . 37
Avaliando Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Simulando com o uso de máquinas abstratas . . . . . . . . . . . . . . . 39
Ficando ainda mais abstrato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Trabalhando com funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
CAPÍTULO 3: Usando Python para Trabalhar
com Algoritmos? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?45
Considerando os Benefícios de Python. . . . . . . . . . . . . . . . . . . . . . . . . 47
Entendendo por que este livro usa Python . . . . . . . . . . . . . . . . . . 47
Trabalhando com MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Considerando outros ambientes de testes de algoritmos . . . . . 50
Examinando as Distribuições Python . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Obtendo o Analytics Anaconda . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Considerando o Enthought Canopy Express . . . . . . . . . . . . . . . . . 52
Considerando o pythonxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Considerando o WinPython . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Instalando Python no Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Instalando o Python no MacOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Instalando Python no Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Baixando as Bases de Dados e Código de Exemplo . . . . . . . . . . . . . . 60
Usando o Jupyter Notebook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Definindo o repositório de código . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Entendendo as bases de dados usadas neste livro . . . . . . . . . . . 67
CAPÍTULO 4: Introduzindo Python para a Programação
de Algoritmos ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?69
Trabalhando com Números e Lógica . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Executando atribuições de variáveis . . . . . . . . . . . . . . . . . . . . . . . . 71
Fazendo a aritmética . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Comparando dados usando expressões booleanas . . . . . . . . . . 74
Criando e Usando Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Interagindo com Datas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Criando e Usando Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Criando funções reutilizáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Chamando funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Usando Expressões Condicionais e de Loop . . . . . . . . . . . . . . . . . . . . 83
Tomando decisões usando a expressão ‘if’ . . . . . . . . . . . . . . . . . . . . 83
Escolhendo entre várias opções usando decisões aninhadas . . 84
Executando tarefas repetitivas usando o ciclo repetitivo for . . . 85
Usando a instrução while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Armazenando Dados em Conjuntos, Listas e Tuplas . . . . . . . . . . . . . 87
Criando conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Criando listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Criando e usando tuplas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Definindo Iteradores Úteis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Indexando Dados Usando Dicionários . . . . . . . . . . . . . . . . . . . . . . . . . 92
CAPÍTULO 5: Executando Manipulações Essenciais
de Dados Usando Python? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?93
Executando Cálculos Usando Vetores e Matrizes . . . . . . . . . . . . . . . . 94
Entendendo operações escalares e vetoriais . . . . . . . . . . . . . . . . 95
Executando a multiplicação vetorial . . . . . . . . . . . . . . . . . . . . . . . . 97
Criar uma matriz é o jeito certo de começar . . . . . . . . . . . . . . . . . 97
Multiplicando matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Definindo operações matriciais avançadas . . . . . . . . . . . . . . . . . 100
Criando Combinações do Jeito Certo . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Distinguindo permutações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Reorganizando combinações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Encarando repetições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Obtendo o Resultado Desejado Usando Recursividade . . . . . . . . . 105
Explicando a recursividade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Eliminando a recursão de cauda . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Executando Tarefas Mais Rápido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Considerando dividir e conquistar . . . . . . . . . . . . . . . . . . . . . . . . . 110
Distinguindo entre diferentes soluções possíveis . . . . . . . . . . . . 113
PARTE 2: ENTENDENDO A NECESSIDADE DE
ORDENAR E BUSCAR ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 115
CAPÍTULO 6: Estruturando Dados ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 117
Determinando a Necessidade de Estrutura . . . . . . . . . . . . . . . . . . . . 118
Facilitando a visualização do conteúdo . . . . . . . . . . . . . . . . . . . . . 118
Combinando dados de várias fontes . . . . . . . . . . . . . . . . . . . . . . . 119
Considerando a necessidade de ajustes . . . . . . . . . . . . . . . . . . . 120
Empilhando Dados em Ordem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Ordenando em pilhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Usando filas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Encontrando dados usando dicionários . . . . . . . . . . . . . . . . . . . . 126
Trabalhando com Árvores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Entendendo o básico de árvores . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Construindo uma árvore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Representando Relações em um Grafo . . . . . . . . . . . . . . . . . . . . . . . 130
Indo além das árvores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Construindo grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
CAPÍTULO 7: Organizando e Buscando Dados? ? ? ? ? ? ? ? ? ? ? ? 133
Ordenando Dados com Mergesort e Quicksort . . . . . . . . . . . . . . . . 134
Definindo a importância de ordenar dados . . . . . . . . . . . . . . . . . 134
Ordenando dados ingenuamente . . . . . . . . . . . . . . . . . . . . . . . . . 136
Empregando melhores técnicas de ordenação . . . . . . . . . . . . . . 138
Usando Árvores de Busca e o Heap . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Considerando a necessidade de buscar com eficácia . . . . . . . . 143
Construindo uma árvore de busca binária . . . . . . . . . . . . . . . . . . 145
Executando buscas especializadas usando um heap binário . . 146
Contando com Hashing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Colocando tudo em cestos (buckets) . . . . . . . . . . . . . . . . . . . . . . 147
Evitando colisões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Criando sua própria função hash. . . . . . . . . . . . . . . . . . . . . . . . . . 151
PARTE 3: EXPLORANDO O MUNDO DOS GRAFOS ? ? ? 153
CAPÍTULO 8: Entendendo o Básico de Grafos ? ? ? ? ? ? ? ? ? ? ? ? 155
Explicando a Importância de Redes . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Considerando a essência de um grafo . . . . . . . . . . . . . . . . . . . . . 156
Encontrando grafos em todo lugar . . . . . . . . . . . . . . . . . . . . . . . . 159
Mostrando o lado social dos grafos . . . . . . . . . . . . . . . . . . . . . . . . 159
Entendendo subgrafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Definindo Como Desenhar um Grafo . . . . . . . . . . . . . . . . . . . . . . . . . 161
Distinguindo os atributos chave . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Desenhando o grafo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Medindo a Funcionalidade do Grafo . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Contando arestas e vértices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Calculando a centralidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Transformando um Grafo em Formato Numérico . . . . . . . . . . . . . . 169
Adicionando um grafo a uma matriz . . . . . . . . . . . . . . . . . . . . . . . 170
Usando representações esparsas . . . . . . . . . . . . . . . . . . . . . . . . . 171
Usando uma lista para manter um grafo . . . . . . . . . . . . . . . . . . . 171
CAPÍTULO 9: Reconectando os Pontos ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 173
Atravessando um Grafo com Eficiência . . . . . . . . . . . . . . . . . . . . . . . . 174
Criando o grafo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Aplicando a busca em largura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Aplicando a busca em profundidade. . . . . . . . . . . . . . . . . . . . . . . 177
Determinando qual aplicação usar . . . . . . . . . . . . . . . . . . . . . . . . 179
Ordenando os Elementos de Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Trabalhando em grafos acíclicos dirigidos (DAGs) . . . . . . . . . . . 181
Contando com a ordenação topológica . . . . . . . . . . . . . . . . . . . . 182
Reduzindo a uma Árvore de Extensão Mínima . . . . . . . . . . . . . . . . . 183
Descobrindo o algoritmo certo a se usar . . . . . . . . . . . . . . . . . . . 186
Introduzindo filas de prioridade . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Alavancando o algoritmo de Prim . . . . . . . . . . . . . . . . . . . . . . . . . 188
Testando o algoritmo de Kruskal . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Determinando qual algoritmo funciona melhor . . . . . . . . . . . . . 191
Encontrando a Rota Mais Curta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Definindo o que significa encontrar o caminho mais curto . . . 192
Explicando o algoritmo de Dijkstra . . . . . . . . . . . . . . . . . . . . . . . . 194
CAPÍTULO 10:Descobrindo os Segredos dos Grafos ? ? ? ? ? ? ? 197
Visualizando Redes Sociais como Grafos . . . . . . . . . . . . . . . . . . . . . . 198
Agrupando redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Descobrindo comunidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Navegando um Grafo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Contando os graus de separação . . . . . . . . . . . . . . . . . . . . . . . . . 203
Percorrendo um grafo aleatoriamente . . . . . . . . . . . . . . . . . . . . . 206
CAPÍTULO 11:Chegando na Página Web Certa ? ? ? ? ? ? ? ? ? ? ? ? 207
Encontrando o Mundo em um Mecanismo de Busca . . . . . . . . . . . 208
Buscando dados na internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Considerando como encontrar os dados certos . . . . . . . . . . . . 208
Explicando o Algoritmo PageRank . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Entendendo o raciocínio por trás do algoritmo PageRank . . . . 210
Explicando o bê-á-bá do PageRank . . . . . . . . . . . . . . . . . . . . . . . . 212
Implementando o PageRank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Implementando um script Python . . . . . . . . . . . . . . . . . . . . . . . . . 213
Lutando com uma implementação ingênua . . . . . . . . . . . . . . . . 217
Introduzindo o tédio e o teletransporte . . . . . . . . . . . . . . . . . . . . 220
Observando a vida de um mecanismo de busca . . . . . . . . . . . . 221
Considerando outros usos do PageRank . . . . . . . . . . . . . . . . . . . 222
Indo Além do Paradigma do PageRank . . . . . . . . . . . . . . . . . . . . . . . . 222
Introduzindo pesquisas semânticas . . . . . . . . . . . . . . . . . . . . . . . 222
Usando IA para classificar resultados de busca . . . . . . . . . . . . . 223
PARTE 4: LUTANDO COM O BIG DATA ? ? ? ? ? ? ? ? ? ? ? ? ? 225
CAPÍTULO 12:Lidando com o Big Data ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 227
Transformando Potência em Dados . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Entendendo as implicações de Moore . . . . . . . . . . . . . . . . . . . . . 229
Encontrando dados em todo lugar . . . . . . . . . . . . . . . . . . . . . . . . 231
Pondo os algoritmos para trabalhar . . . . . . . . . . . . . . . . . . . . . . . 233
Fluxos de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Analisando transmissões com a receita certa . . . . . . . . . . . . . . . 236
Reservando os dados certos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Rascunhando uma Resposta a partir do Fluxo de Dados . . . . . . . . 241
Filtrando elementos de fluxo sem pensar . . . . . . . . . . . . . . . . . . 242
Demonstrando o filtro de Bloom . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Encontrando o número de elementos distintos . . . . . . . . . . . . . 247
Aprendendo a contar elementos em um fluxo . . . . . . . . . . . . . . 249
CAPÍTULO 13:Paralelizando Operações ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 251
Lidando com Imensas Quantidades de Dados . . . . . . . . . . . . . . . . . 252
Entendendo o paradigma paralelo . . . . . . . . . . . . . . . . . . . . . . . . 252
Distribuindo arquivos e operações . . . . . . . . . . . . . . . . . . . . . . . . 255
Empregando a solução MapReduce . . . . . . . . . . . . . . . . . . . . . . . 257
Resolvendo Algoritmos para o MapReduce . . . . . . . . . . . . . . . . . . . . 260
Configurando uma simulação MapReduce . . . . . . . . . . . . . . . . . 261
Investigando por mapeamento . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
CAPÍTULO 14:Comprimindo Dados ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 267
Tornando os Dados Menores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Entendendo a codificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Considerando os efeitos da compressão . . . . . . . . . . . . . . . . . . . 270
Escolhendo um tipo particular de compressão . . . . . . . . . . . . . . 271
Escolhendo sua codificação sabiamente . . . . . . . . . . . . . . . . . . . 273
Codificando usando a compressão de Huffman . . . . . . . . . . . . . 276
Lembrando sequências com LZW . . . . . . . . . . . . . . . . . . . . . . . . . 278
PARTE 5: DESAFIANDO PROBLEMAS DIFÍCEIS? ? ? ? ? ? ? 283
CAPÍTULO 15:Trabalhando com Algoritmos Gulosos ? ? ? ? ? ? 285
Decidindo Quando É Melhor Ser Guloso . . . . . . . . . . . . . . . . . . . . . . 286
Entendendo por que a gula é boa . . . . . . . . . . . . . . . . . . . . . . . . . 288
Mantendo algoritmos gulosos sob controle . . . . . . . . . . . . . . . . 289
Considerando problemas NP-completos . . . . . . . . . . . . . . . . . . . 291
Descobrindo Como a Gula Pode Ser Útil . . . . . . . . . . . . . . . . . . . . . . 292
Organizando dados em cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Competindo por recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
Revisitando a codificação de Huffman . . . . . . . . . . . . . . . . . . . . . 296
CAPÍTULO 16:Recorrendo à Programação Dinâmica ? ? ? ? ? ? 301
Explicando a Programação Dinâmica . . . . . . . . . . . . . . . . . . . . . . . . . 302
Uma base histórica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Dinamizando problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Moldando a recursão dinamicamente . . . . . . . . . . . . . . . . . . . . . 305
Alavancando o memoization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Descobrindo as Melhores Receitas Dinâmicas . . . . . . . . . . . . . . . . . 310
Olhando dentro da mochila . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Viajando pelas cidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Aproximando a busca de strings . . . . . . . . . . . . . . . . . . . . . . . . . . 319
CAPÍTULO 17:Usando Algoritmos Randomizados ? ? ? ? ? ? ? ? ? 323
Definindo Como a Randomização Funciona. . . . . . . . . . . . . . . . . . . . 324
Considerando por que a randomização é necessária . . . . . . . . 325
Entendendo como a probabilidade funciona . . . . . . . . . . . . . . . 326
Entendendo distribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Simulando com o uso do método de Monte Carlo . . . . . . . . . . . 330
Inserindo Aleatoriedade na Sua Lógica . . . . . . . . . . . . . . . . . . . . . . . . 332
Calculando uma mediana usando Quickselect . . . . . . . . . . . . . . 333
Fazendo simulações usando Monte Carlo . . . . . . . . . . . . . . . . . . 336
Ordenando mais rápido com Quicksort . . . . . . . . . . . . . . . . . . . . 338
CAPÍTULO 18:Executando uma Busca Local ? ? ? ? ? ? ? ? ? ? ? ? ? ? 341
Entendendo a Busca Local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Conhecendo a vizinhança . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Apresentando Truques de Busca Local . . . . . . . . . . . . . . . . . . . . . . . . 344
Explicando a escalada com n-rainhas . . . . . . . . . . . . . . . . . . . . . . 345
Descobrindo o simulated annealing . . . . . . . . . . . . . . . . . . . . . . . 348
Evitando repetições usando a busca tabu . . . . . . . . . . . . . . . . . . 349
Solucionando a Satisfatibilidade de Circuitos Booleanos . . . . . . . . 350
Solucionando a 2-SAT usando randomização . . . . . . . . . . . . . . . 351
Implementando o código em Python . . . . . . . . . . . . . . . . . . . . . . 352
Percebendo que um ponto de partida é importante . . . . . . . . . 355
CAPÍTULO 19:Empregando a Programação Linear ? ? ? ? ? ? ? ? 359
Usando Funções Lineares como Ferramenta . . . . . . . . . . . . . . . . . . 360
Compreendendo a matemática básica necessária . . . . . . . . . . . 361
Aprendendo a simplificar quando planejar . . . . . . . . . . . . . . . . . 363
Trabalhando com geometria usando o simplex . . . . . . . . . . . . . 364
Entendendo as limitações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Usando a Programação Linear na Prática . . . . . . . . . . . . . . . . . . . . . 366
Configurando PuLP em casa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Otimizando a produção e a receita . . . . . . . . . . . . . . . . . . . . . . . . 367
CAPÍTULO 20:Considerando Heurísticas ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 373
Diferenciando Heurísticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
Considerando os objetivos das heurísticas . . . . . . . . . . . . . . . . . 374
Da genética à IA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Robôs de Roteamento que Usam Heurísticas . . . . . . . . . . . . . . . . . . 376
Buscando em territórios desconhecidos . . . . . . . . . . . . . . . . . . . 377
Usando medidas de distância como heurísticas . . . . . . . . . . . . . 378
Explicando Algoritmos Desbravadores . . . . . . . . . . . . . . . . . . . . . . . . 380
Criando um labirinto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Procurando uma rota best-first rápida . . . . . . . . . . . . . . . . . . . . . 382
Percorrendo o A* heuristicamente . . . . . . . . . . . . . . . . . . . . . . . . 386
PARTE 6: A PARTE DOS DEZ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 391
CAPÍTULO 21:Dez Algoritmos que Estão Mudando
o Mundo ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 393
Usando Rotinas de Ordenação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
Procurando Coisas com Rotinas de Busca . . . . . . . . . . . . . . . . . . . . . 395
Sacudindo as Coisas com Números Aleatórios . . . . . . . . . . . . . . . . . 395
Executando a Compressão de Dados . . . . . . . . . . . . . . . . . . . . . . . . . 396
Mantendo Dados Secretos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Mudando o Domínio de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Analisando Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Encontrando Padrões de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
Lidando com Automação e Respostas Automáticas . . . . . . . . . . . . . 399
Criando Identificadores Únicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
CAPÍTULO 22:Dez Problemas Envolvendo Algorítmicos
Ainda por Resolver? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 401
Lidando com Buscas de Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Diferenciando Palavras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Determinando Se uma Aplicação Vai Terminar . . . . . . . . . . . . . . . . . 403
Criando e Usando Funções Unidirecionais . . . . . . . . . . . . . . . . . . . . . 403
Multiplicando Números Realmente Grandes . . . . . . . . . . . . . . . . . . . 404
Dividindo um Recurso Igualmente . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Reduzindo o Tempo de Cálculo da Distância de Edição . . . . . . . . . 405
Solucionando Problemas Rapidamente . . . . . . . . . . . . . . . . . . . . . . . 405
O Jogo da Paridade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Entendendo Questões Espaciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
ÍNDICE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 407Informações Técnicas
Nº de páginas: 432 Origem: Internacional Editora: Editora Alta Books Idioma: Português Edição: 1ª Edição Ano: 2018 ISBN: 9788550803579 Encadernação: Brochura Autor: John Mueller , Luca Massaron - Informações