Hoje começamos uma nova série no nosso canal do YouTube, onde vamos implementar vários algoritmos.
Nesse primeiro vídeo, implementamos o algoritmo de ordenação bubble sort.
Deixem suas dúvidas nos comentários.
Até a próxima!
Hoje começamos uma nova série no nosso canal do YouTube, onde vamos implementar vários algoritmos.
Nesse primeiro vídeo, implementamos o algoritmo de ordenação bubble sort.
Deixem suas dúvidas nos comentários.
Até a próxima!
Depois de ter falado sobre a estrutura de dados Stack (pilha) no último post da série, nada melhor do que dar continuidade a série falando de Queue (fila), sua famosa irmã e amiga nas confusões do.. “É FIFO ou é LIFO?”.
Queue ou fila, é uma estrutura de dados muito similar a Stack (pilha), o que acaba gerando confusão. A diferença básica entre elas é a ordem na qual seus itens são consumidos, pois ao contrário da Stack, a Queue sempre vai consumir os itens na ordem que foram inseridos.
Algoritmo | Big O |
---|---|
Espaço | O(n) |
Busca | O(n) |
Insert | O(1) |
Delete | O(1) |
Stack ou pilha, é uma das estruturas de dados mais famosas e uma das mais confundidas também, afinal quem nunca falou… “Sei sim, ela é FIFO… não, LIFO… não, calma”
Uma das primeiras vezes que se viu falar sobre pilha na literatura foi em 1946, quando ninguém mais, ninguém menos que Alan M. Turing usou os termos “bury” e “unbury” como uma forma de chamar e retornar valores de sub-rotinas.
No entanto, embora ele descreve-se o processo, a ideia da criação da estrutura de dados com o nome que conhecemos hoje foi proposta somente em 1955 por Klaus Samelson e Friedrich L. Bauer da Universidade Técnica de Munique.
Uma pilha tem um tamanho definido e somente dois métodos, sendo um para adicionar item, normalmente chamado de push, e outro chamado pop para recuperar/remover.
Leia mais »Em ciência da computação, memoize ou memoization é uma técnica de otimização que faz um cache do resultado de uma função com base nos parâmetros passados para ela.
Essa técnica faz com que a execução real da função só aconteça a primeira vez que o parâmetro ou conjunto de parâmetros é passado, pois como fará um cache do resultado, ao receber os mesmos parâmetros, retornará o valor que está armazenado no cache.
Antes de utilizar a técnica, vamos criar duas funções. A Primeira para calcular o fatorial de um número.
func fatorial(n int) int { total := 1 for i := 2; i <= n; i++ { total *= i } return total }Leia mais »
Na próxima semana vou fazer um post falando sobre go routines, por isso hoje vamos entender o conceito que há por trás dessas crianças.
Embora algumas pessoas usem os dois termos para descrever a mesma coisa, eles com certeza não são. Particularmente, eu sempre dizia que Go executava suas go routines em paralelo, o que faz alusão a serem executadas com paralelismo, o que é uma grande mentira já que que Go é uma linguagem que trabalha com concorrência e não paralelismo.
Mas afinal o que isso quer dizer e qual a diferença?
Concorrência é basicamente a capacidade de lidar com várias coisas de uma só vez, enquanto paralelismo é a capacidade de lidar com várias coisas ao mesmo tempo.
Se você achou que parece ser a mesma coisa, calma… vamos dar um exemplo para tentar deixar mais claro.
Leia mais »