Postagens

Mostrando postagens de julho, 2019

Big Data: Os Vs do Big Data

Imagem
Quando o Big Data foi definido existiam três Vs, o Volume, a Velocidade e a Variedade. No entanto, mas pra frente perceberam que existiam duas outras características que eram igualmente importantes, adicionando assim mais dois Vs, a Veracidade e o Valor. Esta é uma breve explicação da representação de cada V: Volume:  Se trata da quantidade de informações contida nos dados. Velocidade: Representa a rapidez em que os dados chegam e ao tempo que ela é válida. Variedade: Os dados vem em diferentes formatos e tipos, assim dificultando a análise. Veracidade: Refere-se a confiabilidade daquele dado, ele vem de fonte confiável? Foi fabricado ou é real? Valor: Como tudo no capitalismo, se não gera lucro não tem valor, essa característica se trata do benefício gerado através da análise. Outras informações: Volume:  Estimasse que em 2020, existirá na internet 35 Zettabytes de dados. Sendo que 1 Zettabyte é equivalente a 1 bilhão de Terabytes. Velocidade:  Você cruzaria uma rua

Estrutura de Dados #2 - Listas Encadeadas e Árvores.

Imagem
No post anterior( Estrutura de Dados #1 ) foi abordado os tipos principais de estrutura de dados. Neste post será mostrados outros tipos que também são muito importantes no estudo de Algoritmo. Listas Encadeadas: Lista encadeada é uma estrutura de dados linear e dinâmica. Ela é composta por uma sequência de nodos ou células que contém seus dados e também um ou dois ponteiros ("links") que apontam para o nodo anterior ou posterior. As listas encadeadas são úteis para representar conjuntos dinâmicos de dados. Ou seja, você não precisa definir um tamanho máximo para uma lista encadeada. O início aponta para um ponteiro que inicia a estrutura ou o primeiro nó da lista e no final o ponteiro aponta para um Null indicando o fim da lista. Árvores: Árvore é uma estrutura de dados que herda as características das topologias em árvore. Conceptualmente diferente das listas encadeadas, em que os dados se encontram numa sequência, nas árvores os dados estão dispostos de forma hi

Algoritmos #06 - Algoritmos de busca

Imagem
Ao trabalharmos com estruturas de dados, como lista e vetores, pode haver casos em que seja necessário verificar se determinado elemento existe em uma sequência. Embora algumas linguagens já tragam funções pré-estabelecidas para realizar esta tarefa, é possível que,  em certos casos , tal funcionalidade tenha que ser implementada pelo próprio programador. Diante disso, foram criados os chamados "algoritmos de busca/pesquisa", cujo funcionamento será explanado a seguir. Busca sequencial A Busca sequencial é o mais simples algoritmo de pesquisa existente, o qual pode ser utilizado em qualquer vetor. Seu funcionamento consiste basicamente em percorrer toda a sequência (da esquerda para a direita), comparar os elementos da sequência à variável desejada e, caso ela esteja presente lá, retornar "verdadeiro", caso contrário, o algoritmo retornará "falso".  Como na Busca sequencial existe a necessidade de que, no pior dos casos, todo o array seja

Big Data:Tipos de Dados

Imagem
O Big Data processa uma enorme quantidade de dados em tempo real, esses dados vem em todos os formatos de emails, arquivos XML até arquivos de áudio e texto. Esses dados são divididos em três tipos, Dados Estruturados, Dados Semi Estruturados e Dados Não Estruturados. Os três tipos de dados possuem características diferentes, tornando mais fácil ou mais difícil o trabalho do algoritmo do Big Data. Dados Estruturados:  São organizados, de formato estrito e definido tornando fácil a recuperação da informação contida nos dados. Dados contidos em banco de dados são exemplos de dados estruturados. Dados Semi Estruturados:  Possuem uma certa estrutura, porém não seguem a estrutura formal de banco de dados relacionais, sua estrutura é heterogênea, o que requere uma análise prévia dos dados para identificar ou extrair sua informação. Arquivos XML são exemplos de dados semi estruturados. Dados Não Estruturados:  Não possuem estrutura alguma, são de difícil recuperação e precisam

Algoritmos #05 - Algoritmos de ordenação, parte II

Imagem
Parte I:   Algoritmos simples de ordenação Continuando a série de posts sobre algoritmos de ordenação, trataremos agora dos algoritmos que utilizam os chamados métodos eficientes de ordenação, que, apesar de retornarem os resultados de forma mais ágil , apresentam mais difícil implementação, sendo, portanto, indicados para a resolução de problemas mais complexos . Métodos eficientes  Os dois métodos apresentados a seguir, Merge sort e Quick sort , utilizam, de formas diferentes, um paradigma bastante famoso na criação de algoritmos , através do qual eles conseguem uma performance mais eficiente :  o '' dividir-para-conquistar ''. Tal paradigma consiste na divisão do problema em várias partes menores, ou sub-problemas , que são similares ao problema original. Os sub-problemas são resolvidos de forma recursiva e depois são combinados em uma solução para o problema original. Merge Sort O Merge sort funciona da seguinte forma: a lista a ser ordenad

Algoritmos #04 - Algoritmos de ordenação, parte I

Imagem
Na computação, há uma quantidade imensa de diferentes tipos de algoritmos , que utilizam dos mais diversos métodos para realizar funções que facilitem a vida do programador. A partir de agora, a série de posts sobre algoritmos irá focar em apresentar alguns exemplos das mais famosas sequências de instruções da ciência da computação. Algoritmos de ordenação A primeira categoria a ser trabalhada é a de ordenação , composta por algoritmos que têm como atribuição organizar uma determinada sequência de elementos (listas, arrays, vetores, etc), de forma crescente ou decrescente. Eles podem ser divididos em métodos simples (de fácil implementação, mas pouca velocidade) e métodos eficientes (de implementação mais complexa, mas maior velocidade). Este primeiro post tratará, a seguir, do primeiro caso, o qual é mais adequado para pequenos vetores. Métodos simples  Bubble Sort O Bubble Sort é conhecido por ser o algoritmo de ordenação de mais fácil