quarta-feira, 23 de julho de 2014

Tire aqui as suas dúvidas sobre a apresentação de hoje (23/07/14)

Olá, você que viu nossa apresentação de hoje (23/07/14) sobre Big Data, estruturas de dados e noções de algoritmos e ficou com alguma dúvida ou alguma observação a fazer, fique à vontade, esse post está dedicado exclusivamente a isso.
Deixe aqui nos comentários sua dúvida ou observação.






Link para o Slide: http://www.slideshare.net/maicsongabriel/fec-37285189

segunda-feira, 21 de julho de 2014

Arvore Binaria.

Mais uma vez vamos conversar sobre ED, mais então meu caros leitores poque falar tanto sobre ED? nessa altura do campeonato poucos sabem mas, sem Estrutura de Dados, sem Big Data ou talvez até sem computação, esse é o ramo onde estudamos eficiência e eficacia dos nosso códigos, aqui não basta
solucionar tem que ser da melhor maneira otimizando as aplicações facilitando a busca por dados e por consequência complicando a vida de muitos programadores , mas o nosso foco são Arvores Binarias, nesse caso é basicamente a continuação de nossa ultima postagem, arvores são complicadas de se manter, então uma arvore binaria cria uma restrição quanto ao grau, no caso o grau máximo passa a ser 2 e não n grau como foi na nossa ultima postagem, sem mais conversa segue o material :
Árvores Binárias

Definição: São estruturas do tipo árvore com as seguintes características:
  • A árvore tem grau 2.
  • Cada subárvore é identificada como subárvores esquerda e direita.
  • Pode haver uma ordenação entre as subárvores.
Exemplo:

Implementação Encadeada


A implementação encadeada de árvore binária tem as seguintes características:
  • Usa um estrutura dinâmica com apontadores.
  • Cada nó contém os dados e os apontadores para as subárvores esquerda e direita.
Graficamente, teríamos:


A implementação encadeada de árvore binária é mais usada do que a estática porque e mais eficiente em termos de espaço em memória.
Definição de uma árvore binária em pascaltype
   ArvoreBinaria = ^No;
   No = record
           Dado: tipo_do_dado;
           Esquerdo,
           Direito,
           Pai : ArvoreBinaria;
        end;

O procedimento CriarNo recebe um apontador ArvoreBinaria e o dado que será colocado no nó. Além de alocar uma variável dinâmica para o nó, copia o dado para esta variável e faz com que os apontadores para o pai, para o nó esquerdo e para o nó direito sejam inicializados através do procedimento Inicializar.
A função ExisteNo retorna true se existe um nó na árvore binária passada seguindo pela direção especificada.
O procedimento Deslocar move o apontador do tipo ArvoreBinaria na direção especificada. Se a direção for nó raiz, Deslocar só encerra quando ArvoreBinaria não tiver mais um nó pai.
O procedimento ObterDado coloca em Dado (parâmetro), o valor contido no nó passado.
O procedimento AlterarDado modifica o valor do dado contido no nó passado para o valor passado como parâmetro.
O procedimento AdicionarFilho coloca um novo nó na direção especificada (nó esquerdo ou nó direito) e copia o dado passado para ele.
Fonte : http://200.17.141.213/~alberto/2012-2/ed1/aulas/arvores_binarias.htm

sexta-feira, 18 de julho de 2014

Power Systems

Como coletar grande volume da dados ? a IBM sabe, atualmente a IBM deselvolve uma aplicação muito bacana para auxiliar o controle de volume de dados através do fluxo desses, ou seja controlar a saida e
entrada de dados, desse modo é possivel prever o estado do mercado futuro(), senda assim sua empresa sabe como será as coisas amanhã dando uma vantagem sem tamanho sobre todas as outras, então você caro empresario visite a IBM e caro leitor aprenda a usar esse tipo de aplicação, segue o link da IBM :http://www-03.ibm.com/systems/br/power/solutions/bigdata-analytics.html

quinta-feira, 17 de julho de 2014

Algoritmos de Ordenação - Insection Sort

Insertion sort


Mais um vídeo hilário com o algoritmo: 




O Insertion sort é um algoritmo simples e eficiente quando aplicado em pequenas listas. Neste algoritmo a lista é percorrida da esquerda para a direita, à medida que avança vai deixando os elementos mais à esquerda ordenados.
O algoritmo funciona da mesma forma que as pessoas usam para ordenar cartas em um jogo de baralho como o pôquer.


Esquema de funcionamento do Insertion Sort:
  • Neste passo é verificado se o 5 é menor que o 3, como essa condição é falsa, então não há troca.
  • É verificado se o quatro é menor que o 5 e o 3, ele só é menor que o 5, então os dois trocam de posição.
  • É verificado se o 2 é menor que o 5, 4 e o 3, como ele é menor que 3, então o 5 passa a ocupar a posição do 2, o 4 ocupa a posição do 5 e o 3 ocupa a posição do 4, assim a posição do 3 fica vazia e o 2 passa para essa posição.

O mesmo processo de comparação acontece com o número 1, após esse processo o vetor fica ordenado.

Pseudocódigo


Animações




Fontes: http://pt.wikipedia.org/wiki/Insertion_sort;
            Youtube;
            Devmedia.


quarta-feira, 16 de julho de 2014

Algoritmos de Ordenação - Bubble Sort

Bubble Sort



Primeiramente um vídeo simples e bem divertido em que é usado "Folk Dance" para explicar como ele funciona:




Bubble sort (ou método da bolha) é o algoritmo mais simples, mas o menos eficientes. Neste algoritmo cada elemento da posição i será comparado com o elemento da posição i + 1, ou seja, um elemento da posição 2 será comparado com o elemento da posição 3. Caso o elemento da posição 2 for maior que o da posição 3, eles trocam de lugar e assim sucessivamente. Por causa dessa forma de execução, o vetor terá que ser percorrido quantas vezes que for necessária, tornando o algoritmo ineficiente para listas muito grandes.

Esquema de funcionamento do Buble Sort:
  • É verificado se o 3 é maior que 5, por essa condição ser falsa, não há troca.
  • É verificado se o 5 é maior que 1, por essa condição ser verdadeira, há uma troca.
  • É verificado se o 5 é maior que 2, por essa condição ser verdadeira, há uma troca.
  • É verificado se o 5 é maior que 4, por essa condição ser verdadeira, há uma troca.
  • O método retorna ao início do vetor realizando os mesmos processos de comparações, isso é feito até que o vetor esteja ordenado.

Complexidade

Com relação a complexidade do algoritmo, no melhor caso, ele executa n operações relevantes, onde n representa o número de elementos do vetor. No pior caso, são feitas n^2operações. A complexidade desse algoritmo é de Ordem quadrática. Por isso, ele não é recomendado para programas que precisem de velocidade e operem com quantidade elevada de dados.
 

Segue abaixo uma animação que demonstra como o processo funciona:





Fontes: http://pt.wikipedia.org/wiki/Bubble_sort;
              Youtube

Big Data e o mercado de trabalho

Olá, aqui já foi falado sobre Big Data, sobre seu uso e mais diversos campos de aplicação, também sobre seu crescimento, mas você que leu e se interessou por Big Data se pergunta, "legal, mas como eu posso trabalhar com Big Data ?"  pois é, boa pergunta e aqui está a resposta para essa pergunta.
Estava navegando nas nets qualquer dia desse, quando me deparei com esse artigo sobre áreas de trabalho com Big Data e as suas devidas explicações.
Tem muitas áreas, alguns exemplos são: Analista de Mercado, Desenvolvedor de Software, Administradores de Bancos de Dados, entre outras, segue o link com a lista das profissões mais lucrativas:

Estruturas de dados (definição)

Olá, nesse post irei falar um pouco mais sobre estruturas de dados.

No maravilhoso mundo da computação, uma estrutura de dados é um modo particular de armazenar e organizar dados em um computador de modo que possam ser usados com eficiência.
Existem diferentes tipos de estruturas para diferentes tipos de aplicação, enquanto algumas são bem simples, existem outras que são altamente especializadas que se destinam a tarefas específicas. Um exemplo das estruturas especializadas são as B-trees, que são particularmente indicadas para a implementação de bases de dados.
Estruturas de dados e algoritmos são temas fundamentais na computação, sendo utilizados nas mais diversas áreas do conhecimento e com os mais diferentes propósitos de aplicação. Sabe-se que algoritmos manipulam dados. Quando estes dados estão organizados de forma coerente, caracterizam uma estrutura de dados. A organização e os métodos para manipular essa estrutura é que lhe conferem singularidade e diminuição do espaço ocupado pela memória RAM, além de tornar o código-fonte do programa mais enxuto e simplificado.
Existem estruturas de dados homogêneas, por exemplo, vetores e matrizes, que são formadas pelo mesmo tipo de dado primitivo, e existem estruturas heterogêneas (registros) que são conjuntos de dados formados por tipos de dados primitivos diferentes em uma mesma estrutura.
As estruturas de dados podem transformar um problema que antes era enorme em um probleminha de fácil resolução.
Essas estruturas estão em constante desenvolvimento, mas, apesar disso, existem estruturas que são clássicas e se comportam como padrões. São elas os vetores e os arrays.


Esse post foi apenas uma leve explanação sobre estruturas de dados, já existem alguns posts mais específicos sobre tipos de dados no Blog.

Aqui estão alguns links sobre estruturas:
 Estruturas de Dados e os ponteiros da vida
Array
Lista encadeada
Lista Ordenada
___________________________________________________________
Qualquer dúvida deixe nos comentários que procurarei responder em breve.
___________________________________________________________
Fonte:Estrutura de dados