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.
Carregando

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.

Aprenda o insertion sort, outra forma simples, mas não muito eficiente, de ordenar um array de valores.

Use a técnica recursiva para resolver as Torres de Hanoi, um desafio matemático clássico e declaradamente 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.

Aprenda como cruzar 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.