Conteúdo principal
Unidade: Algoritmos
Sobre esta unidade
Fizemos parcerias com os professores da faculdade Dartmouth, Tom Cormen e Devin Balkcom, para ensinar algoritmos introdutórios de ciência da computação, incluindo busca, ordenação, recursividade, e teoria dos grafos. Aprenda com uma combinação de artigos, visualizações, perguntas, e desafios de programação.O que são algoritmos e por que você deveria se importar com eles? Vamos começar com uma visão geral de algoritmos, e então discutir sobre dois jogos nos quais você poderia usar um algoritmo para resolvê-los de forma mais eficiente - o jogo da adivinhação do número, e o jogo de encontrar uma rota.
Aprenda sobre a busca binária, uma forma de fazer uma busca eficiente em um array de itens com a diminuição do espaço de busca pela metade a cada vez.
Aprenda a usar as análises assintóticas para descrever a eficiência de um algoritmo, e a usar notação assintótica (Big O, Big-Theta, e Big-Omega) para descrever a eficiência com mais precisão.
Aprenda o selection sort, um algoritmo simples para ordenar um array de valores, e veja por que ele não é o algoritmo mais eficiente.
Aprender
Aprenda o insertion sort, outra forma simples, mas não muito eficiente, de ordenar um array de valores.
Aprenda o conceito da recursividade, uma técnica que é frequentemente usada em algoritmos. Veja como usar a recursividade para calcular o fatorial e a potência de um número, e também para fazer arte.
Aprender
Use a técnica recursiva para resolver as Torres de Hanoi, um desafio matemático clássico que teria sido enfrentado por monges em um templo.
Aprenda o merge sort, um algoritmo de ordenação mais eficiente que se baseia fortemente no poder da recursividade para, repetidamente, ordenar e misturar subarrays.
Aprenda o quick sort, outro algoritmo de ordenação eficiente que usa recursividade para ordenar um array de valores mais rapidamente.
Aprenda a descrever grafos, com suas arestas, vértices, e pesos, e veja formas diferentes de armazenar dados em grafos, com listas de arestas, matrizes de adjacência, e listas de adjacência.
Aprender
Praticar
Aprenda como percorrer um grafo usando busca em largura para encontrar um nó em particular ou para garantir que você tenha visitado todos os nós, passando por uma camada de cada vez.
Ideias de como você poderia continuar sua jornada de aprendizagem em algoritmos.