Postagens

Mostrando postagens de agosto, 2019

Alan Turing

Imagem
 Alan Mathison Turing. Cientista da computação que ficou conhecido como "Pai da computação" foi responsável pela formalização do c onceito de algorítimo.   Quando vivo Alan Turing teve grande participação na Segunda Grande Guerra não nas linhas de frente, mas trabalhando na inteligência do exercito Inglês.   Nele Alan desenvolveu a "Máquina de Turing" que é uma maquina imaginária que formou a estrutura fundamental da ciência da computação. Até hoje uma referência na lógica de programação alan deu os moldes de como a logica computacional se desenvolveu nos anos que o seguiram. A maquina de Turing funciona quase como uma formula ou uma equação sendo assim possível criar uma infinidade de máquinas da forma que Alan Turing descreveu.  Referências:  -  http://www.ufrgs.br/alanturingbrasil2012/Maquina_de_Turing.pdf

Algoritmos #08 - Introdução à análise de complexidade

Imagem
Dentro do universo da programação, é comum encontrar diversos algoritmos que realizam uma mesma função. Porém, apesar do objetivo final ser idêntico, eles são compostos por estruturas e comandos completamente diferentes entre si e, portanto, haverá uma certa discrepância no tempo gasto por cada um durante a execução. Como, na computação, o custo de um algoritmo é diretamente proporcional ao seu tempo de execução, é essencial buscar sempre a criação do código mais eficiente possível. Entretanto, não é viável calcular o tempo exato gasto, pois, ele depende  do hardware do computador em que o código será executado e da linguagem de programação utilizada e, portanto, é diferente para cada situação. Nesse contexto,  surge a análise assintótica, caracterizada como uma forma de "medir" a eficiência de um algoritmo em um contexto ideal (independente de fatores externos),  que será melhor explanada a seguir. Análise assintótica Para medir o custo de execução (ou complexi

Estrutura de Dados #3 - Implementação de Fila.

Como já foi explicados em posts anteriores, a Fila é uma Estrutura de Dados  do tipo FIFO (First-In-Fisrt-Out), onde o primeiro elemento a entrar, será o primeiro elemento a sair.   A ideia fundamental da fila é que só podemos inserir um novo elemento no final da fila e só podemos retirar o elemento do início. Neste post será explicado a implementação da Fila com a linguagem Python. Implementação: Essa Fila será implementada usando uma lista e utilizando alguns métodos conhecidos para inserção/remoção de elementos que as listas oferecem. .append(elemento): adiciona elemento ao final da fila .insert(índice, elemento): insere elemento após a posição índice .pop(índice): remove remove e retorna o elemento contido na posição índice. Para inserir elementos, podemos usar o método append(), que insere um elemento ao final de uma lista. Para a retirada de elementos, podemos utilizar o método pop(x), que retira e retorna um elemento da posição x. Em se tratando de uma fila em que