MapReduce Mapeando e reduzindo

Tamanho: px
Começar a partir da página:

Download "MapReduce Mapeando e reduzindo"

Transcrição

1 MapReduce Mapeando e reduzindo Prof. Fabrício Olivetti de França Universidade Federal do ABC

2 Motivação Vimos até então que nosso maior problema é a quantidade de dados. O processamento não pode ser distribuído se não pudermos distribuir os dados.

3 Motivação Como extrair informações dos dados tendo apenas uma visão local (parte dos dados) mas tendo a possibilidade de mesclar essa informação em uma visão global?

4 Ordenando dados Um fato comum a muitos algoritmos de ordenação de dados é que eles estão limitados a uma complexidade computacional O(nlogn). Isso porque eles se baseiam em comparação par a par.

5 Ordenando dados Mas existem algumas técnicas que conseguem superar essa limitação! Uma delas é a Bucket Sort que utiliza o princípio da casa dos pombos.

6 Princípio da Casa dos Pombos Imaginem que temos 1 pombo e uma casa.

7 Princípio da Casa dos Pombos É fácil alocar esse pombo nessa casa.

8 Princípio da Casa dos Pombos Da mesma forma se temos dois pombos e duas casas.

9 Princípio da Casa dos Pombos Ou n pombos e n casas.

10 Princípio da Casa dos Pombos Mas se tivermos n pombos e m casas, com n>m?????

11 Princípio da Casa dos Pombos Nesse caso podemos dizer que pelo menos 1 pombo terá que dividir casa com outro!

12 Princípio da Casa dos Pombos Mas o que isso tem a ver com ordenação...e com nosso problema de distribuição de dados?

13 Princípio da Casa dos Pombos Imagine que temos um monte de pombos.

14 Princípio da Casa dos Pombos E queremos dividi-los em machos e fêmeas.

15 Princípio da Casa dos Pombos Mas para saber se são machos ou fêmeas, devemos comparar com pombos da mesma espécie.

16 Princípio da Casa dos Pombos Digamos que temos 3 espécies diferentes...

17 Princípio da Casa dos Pombos...devemos comparar cada pombo com todos os outros?

18 Princípio da Casa dos Pombos Mas, nós sabemos que cada espécie come uma fruta diferente.

19 Princípio da Casa dos Pombos Se colocarmos cada fruta em uma casa diferente, atrairemos pombos da mesma espécie para as mesmas casas.

20 Princípio da Casa dos Pombos Se colocarmos cada fruta em uma casa diferente, atrairemos pombos da mesma espécie para as mesmas casas.

21 Princípio da Casa dos Pombos Matematicamente aplicamos uma função f(x), onde x é um pombo, que retorna a casa que o pombo pertence. f(x) f(x) f(x)

22 Princípio da Casa dos Pombos Ou seja, temos uma função que mapeia nossos objetos para o lugar deles. f(x) f(x) f(x)

23 Princípio da Casa dos Pombos Em cada casa, fazemos a comparação entre os pombos para determinar quem é macho e quem é fêmea. f(x) f(x) f(x)

24 Princípio da Casa dos Pombos Retiramos os pombos da casa já separados.

25 Princípio da Casa dos Pombos Fazemos as operações dentro das casas mas reduzimos os dados para fora delas.

26 Princípio da Casa dos Pombos Bom, acabamos de ordenar os pombos.

27 Princípio da Casa dos Pombos Com 9 pombos, fizemos 9 operações de mapeamento. Em cada casa fizemos 3 operações.

28 Princípio da Casa dos Pombos Ao todo fizemos 18 operações, menos do que as 36 na ordenação ingênua.

29 Bucket Sort Digamos que temos 20 bolinhas numeradas de 1 a 20 e queremos ordená-las

30 Bucket Sort Vamos fazer isso utilizando 5 baldes (ao invés de casas)

31 Bucket Sort Primeiro vamos definir quais números devem ir em cada balde!

32 Bucket Sort Primeiro vamos definir quais números devem ir em cada balde! a 4 5 a 8 9 a a a 20

33 Bucket Sort Nossa função pode ser f(x) = floor((x-1) / 4) a 4 5 a 8 9 a a a 20

34 Bucket Sort No primeiro passo, aplicamos f(x) em cada elemento e jogamos no balde correto

35 Bucket Sort Em cada balde ordenamos utilizando qualquer método de ordenação

36 Bucket Sort Retiramos os números dos baldes na ordem correta e concatenamos o resultado de cada balde

37 Bucket Sort Fizemos um total de 20 operações para mapear os números e 5*6=30 operações para ordenar no balde

38 Bucket Sort 50 operações contra cerca de 60 com n.logn ou 2500 em n

39 Bucket Sort Mas reparem que nossa função de mapeamento dividiu nossos dados. Essa divisão permitiu que trabalhássemos com apenas parte dos dados de forma independente sem afetar o resultado final.

40 MapReduce O mapeamento dos dados, chamado de map e a redução dos conjuntos, chamado reduce, nos permite trabalhar com grandes quantias de dados de forma paralela sem alterar a saída do algoritmo.

41 MapReduce Essas funções já são velhas conhecidas de quem programa em linguagem funcional. O x da questão está em criar essas funções map e reduce para executar nossa tarefa.

42 Sistemas de Arquivos Distribuídos Antes de aprendermos os conceitos de MapReduce vamos entender como funciona a rede de servidores para lidar com grande quantidade de dados.

43 Sistemas de Arquivos Distribuídos Um sistema de arquivos distribuídos geralmente é composto por vários racks de servidores em gavetas.

44 Sistemas de Arquivos Distribuídos Os computadores de cada rack são interligados por uma rede Gigabit.

45 Sistemas de Arquivos Distribuídos E os racks são interligados por um switch ou roteador.

46 Sistemas de Arquivos Distribuídos Em casos que temos uma grande massa de dados sendo adquiridos a cada instante, faz-se necessário tal estrutura. Porém, muitas máquinas significa uma maior chance de falhas.

47 Sistemas de Arquivos Distribuídos Note que esse tipo de sistema só faz sentido quando temos algo além dos Terabytes de dados e os dados não são atualizáveis.

48 Sistemas de Arquivos Distribuídos Nesse tipo de sistema temos duas falhas principais: Falha em uma gaveta (perda de dados). Falha na comunicação intra-racks (perda de comunicação).

49 Sistemas de Arquivos Distribuídos A computação efetuada nesse sistema deve ser tolerante a falhas! Imaginem um processamento que leva horas tendo que ser reiniciado por completo por conta de uma falha na rede. Ou parte dos seus dados perdidos pois um único HD deu problema.

50 Sistemas de Arquivos Distribuídos Para resolver isso nosso sistema deve: Armazenar os dados de forma redundante Dividir o processamento em tarefas

51 Dados Redundantes Nesse tipo de sistema de arquivos os dados são divididos em pedaços, geralmente de 64 MB. Cada pedaço é armazenado em pelo menos 3 servidores localizados em diferentes racks.

52 Dados Redundantes A localização de cada pedaço de um arquivo é armazenado no chamado Nó Mestre, que também é replicado para caso de falhas.

53 Dados Redundantes Exemplos desse tipo de sistema de arquivos: GFS: Google File System HDFS: Hadoop Distributed File System CloudStore

54 Processamento em Tarefas O processamento de dados nesse tipo de sistema segue a lógica do MapReduce. Esse procedimento inicia em cada nó do sistema que contém um pedaço de arquivo de interesse.

55 Processamento em Tarefas Em cada nó, os pedaços de arquivo passam por uma função Map, que transforma os dados do arquivo em uma tupla (chave, valor) Chave-Valor (k,v) DADOS MAP

56 Processamento em Tarefas Essas tuplas são direcionadas a um nó mestre, onde são ordenadas e agrupadas pela chave. Chave-Valor (k,v) (k,[v1,v2,..,vn]) DADOS MAP ORDENA AGRUPA

57 Processamento em Tarefas As tuplas agrupadas são repassadas para outros nós que fazem a redução dos dados. Chave-Valor (k,v) (k,[v1,v2,..,vn]) DADOS MAP ORDENA AGRUPA REDUCE

58 Processamento em Tarefas Finalmente, os dados são combinados e a saída é emitida. Chave-Valor (k,v) (k,[v1,v2,..,vn]) DADOS COMBINAR MAP ORDENA AGRUPA REDUCE

59 Processamento em Tarefas Note que esse sistema é naturalmente tolerante a falhas. Chave-Valor (k,v) (k,[v1,v2,..,vn]) DADOS COMBINAR MAP ORDENA AGRUPA REDUCE

60 Processamento em Tarefas Se um nó MAPPER falhar, basta o nó mestre aguardar que outro mapper termine a tarefa e repassa os pedaços para ele. DADOS COMBINAR MAP ORDENA AGRUPA REDUCE

61 Processamento em Tarefas Se um nó REDUCER falhar, o nó mestre repassa os dados para outro reducer. DADOS COMBINAR MAP ORDENA AGRUPA REDUCE

62 Processamento em Tarefas Se o nó mestre falhar, basta um novo nó mestre recuperar os dados dos mappers. DADOS COMBINAR MAP ORDENA AGRUPA REDUCE

63 Exemplo Canônico Vamos exemplificar o procedimento com uma tarefa bem simples: contar a frequência de cada termo em uma série de documentos. Imaginem que temos armazenados 10TB de documentos em nosso sistema, queremos contar a frequência de cada termo existente em TODOS os documentos.

64 Exemplo Canônico Cada mapper vai receber 64MB de texto (não necessariamente do mesmo documento).

65 Map A nossa função MAP vai receber um pedaço de texto: Para cada termo t do texto: emite ( t, 1 ) Ou seja, o mapper emite cada termo encontrado (chave) com o valor 1.

66 Reduce Cada reducer recebe a tupla (termo, [valores]) após o nó central ordenar a saída dos mappers. Para cada (k,[vi]) faça: total = soma([vi]) emite (k,total) Nesse momento os reducers fazem a soma dos termos e emitem a contagem.

67 Combine Quando temos um cálculo associativo e comutativo (ex.: soma das contagens), podemos usar um passo intermediário chamado Combine. Esse passo é feito em cada nó mapper e consiste em pré-calcular parte do reduce.

68 Combine No nosso caso, o combine faria o cálculo da frequência de cada termo em cada nó mapper e emitiria (t, v) com v sendo a soma de ocorrência do termo t.

69 MapReduce no Haskell

70 GHC Mapper e Combiner mapper :: (Hashable k0, Eq k0) => Op a0 -> Mapper k0 a0 -> [k0] -> M.HashMap k0 a0 mapper combfun f job = combiner combfun $ map f job

71 GHC Mapper e Combiner combiner :: (Hashable k0, Eq k0) => Op a0 -> [(k0,a0)] -> M.HashMap k0 a0 combiner f m = M.fromListWith f m

72 GHC Reducer reducer :: (Hashable k0, Eq k0) => Op a0 -> [M.HashMap k0 a0] -> M.HashMap k0 a0 reducer f m = foldl' (M.unionWith f) M.empty m

73 GHC Tipos type Op a = (a -> a -> a) -- Function of two inputs type Mapper k a = k -> (k,a) -- Function that maps a key to a key value tuple

74 GHC Contador de Palavras wordcount :: Int -> [String] -> M.HashMap String Integer wordcount n wl = reducer (+) mapped where mapped = map mapfun workers `using` parlist rdeepseq mapfun = mapper (+) counter counter w = (w,1) workers = chunksof n wl

75 Tarefa para a casa Implemente os algoritmos em BoW utilizando o conceito de MapReduce.

Haddop, MapReduce e Spark

Haddop, MapReduce e Spark Haddop, MapReduce e Spark Fabrício Olivetti de França Universidade Federal do ABC Tópicos 1. Conceitos Básicos 2. MapReduce 3. Spark 4. Transformações Básicas 5. Ações Básicas 1 Conceitos Básicos Hadoop

Leia mais

Sumarizando Dados. Fabrício Olivetti de França. Universidade Federal do ABC

Sumarizando Dados. Fabrício Olivetti de França. Universidade Federal do ABC Sumarizando Dados Fabrício Olivetti de França Universidade Federal do ABC Sumarizando os dados Sumarização Antes de extrair informações da base de dados, é importante entender seu conteúdo. Sumarização:

Leia mais

Pré-processamento de Dados

Pré-processamento de Dados Pré-processamento de Dados Fabrício Olivetti de França Universidade Federal do ABC Pré-Processamento dos Dados Tópicos 1. Pré-Processamento dos Dados 2. Conceitos Básicos 3. Representação Textual 4. Padrões

Leia mais

Informática Parte 10 Prof. Márcio Hunecke

Informática Parte 10 Prof. Márcio Hunecke Escriturário Informática Parte 10 Prof. Márcio Hunecke Informática CONCEITOS DE MAPREDUCE E HDFS/HADOOP/YARN 2.7.4 Big Data O termo Big Data refere-se a um grande conjunto de dados armazenados e baseia-se

Leia mais

Bruno Antunes da Silva UFSCar - Sorocaba

Bruno Antunes da Silva UFSCar - Sorocaba Bruno Antunes da Silva UFSCar - Sorocaba Introdução HDFS Arquitetura Leitura e escrita Distribuição de nós Controle de réplicas Balancer MapReduce Conclusão Aplicações web com grandes quantidades de dados

Leia mais

Vença o relógio Redes de Ordenação

Vença o relógio Redes de Ordenação Atividade 8 Vença o relógio Redes de Ordenação Sumário Mesmo os computadores sendo rápidos, há um limite na sua velocidade de resolução de problemas. Uma forma de acelerar as coisas é usar vários computadores

Leia mais

Python + Spark = PySpark. Prof. Fabrício Olivetti de França Universidade Federal do ABC

Python + Spark = PySpark. Prof. Fabrício Olivetti de França Universidade Federal do ABC Python + Spark = PySpark Prof. Fabrício Olivetti de França Universidade Federal do ABC Spark Plataforma para processamento de dados em larga escala. Baseado em transformações preguiçosas dos dados. Estende

Leia mais

Técnicas de Programação

Técnicas de Programação Técnicas de Programação Algoritmos Anderson Gomes Eleutério Lógica A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir

Leia mais

AVALIAÇÃO DE DESEMPENHO DE PROCESSAMENTO DISTRIBUÍDO EM LARGA ESCALA COM HADOOP

AVALIAÇÃO DE DESEMPENHO DE PROCESSAMENTO DISTRIBUÍDO EM LARGA ESCALA COM HADOOP AVALIAÇÃO DE DESEMPENHO DE PROCESSAMENTO DISTRIBUÍDO EM LARGA ESCALA COM HADOOP Débora Stefani Lima de Souza [email protected] Orientador: Dr. Paulo Romero Martins Maciel INTRODUÇÃO Nem sempre os dados

Leia mais

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5 Cristina Boeres Introdução! Diferença de velocidade entre Processador e MP O processador executa uma operação rapidamente e fica em

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Professor Ariel da Silva Dias Algoritmos Divisão e Conquista Construção incremental Resolver o problema para um sub-conjunto dos elementos de entrada; Então, adicionar

Leia mais

ALGORITMOS DE ORDENAÇÃO

ALGORITMOS DE ORDENAÇÃO ALGORITMOS DE ORDENAÇÃO Prof. André Backes Conceitos básicos 2 Ordenação Ato de colocar um conjunto de dados em uma determinada ordem predefinida Fora de ordem 5, 2, 1, 3, 4 Ordenado 1, 2, 3, 4, 5 OU 5,

Leia mais

2. Redes Neurais Artificiais

2. Redes Neurais Artificiais Computação Bioinspirada - 5955010-1 2. Redes Neurais Artificiais Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 2.1. Introdução às Redes Neurais Artificiais (RNAs) 2.1.1. Motivação

Leia mais

Ordenação em Tempo Linear

Ordenação em Tempo Linear Ordenação em Tempo Linear Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 19 Algoritmos e Estruturas de Dados I Ordenação em tempo linear Algoritmos de ordenação por comparação: InsertSort; Quicksort;

Leia mais

Complexidade de Tempo e Espaço

Complexidade de Tempo e Espaço Complexidade de Tempo e Espaço Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Complexidade de Tempo e Espaço junho - 2018 1 / 43 Este material é preparado usando

Leia mais

Estruturas de Dados 2

Estruturas de Dados 2 Estruturas de Dados 2 Algoritmos de Ordenação em Tempo Linear IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/38 Algoritmos de Ordenação em Tempo Linear Limite Assintótico

Leia mais

QUESTIONÁRIO SOBRE HADOOP LEITURA DO MATERIAL FORNECIDO ALUNO/GRUPO ;

QUESTIONÁRIO SOBRE HADOOP LEITURA DO MATERIAL FORNECIDO ALUNO/GRUPO ; QUESTIONÁRIO SOBRE HADOOP LEITURA DO MATERIAL FORNECIDO ALUNO/GRUPO ; LEIA O MATERIAL ANTES DE FAZER O EXEMPLO DIDÁTICO. AS QUESTÕES ABAIXO PODEM SER RESPONDIDAS, USANDO, PREFERENCIALMENTE, SUA PRÓPRIAS

Leia mais

Teoria da Computação Aula 9 Noções de Complexidade

Teoria da Computação Aula 9 Noções de Complexidade Teoria da Computação Aula 9 Noções de Complexidade Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Análise de um Algoritmo em particular Qual é o custo de usar um dado algoritmo para resolver um

Leia mais

Lista de Exercício de Linguagens de Programação Prog. Funcional

Lista de Exercício de Linguagens de Programação Prog. Funcional UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE CIÊNCIA E TECNOLOGIA CURSO DE CIÊNCIA DA COMPUTAÇÃO Lista de Exercício de Linguagens de Programação Prog. Funcional 1) Construa uma função del_posicao_n ::

Leia mais

MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016

MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016 MC102 Aula 26 Recursão Instituto de Computação Unicamp 17 de Novembro de 2016 Roteiro 1 Recursão Indução 2 Recursão 3 Fatorial 4 O que acontece na memória 5 Recursão Iteração 6 Soma em um Vetor 7 Números

Leia mais

24/09/2014. Prof. André Backes

24/09/2014. Prof. André Backes Prof. André Backes 1 Por que usar listas? As variáveis declaradas até agora são capazes de armazenar um único valor por vez. Sempre que tentamos armazenar um novo valor dentro de uma variável, o valor

Leia mais

Busca em Memória Primária Estrutura de Dados II

Busca em Memória Primária Estrutura de Dados II Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Busca em Memória Primária Estrutura de Dados II Estrutura de Dados II COM10078 2017-I Prof. Marcelo Otone Aguiar [email protected]

Leia mais

Aula 10: Introdução a Vetores e Matrizes

Aula 10: Introdução a Vetores e Matrizes Aula 10: Introdução a Vetores e Matrizes Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Vetores e Matrizes Programação de Computadores IV 1 / 50 Agenda

Leia mais

ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ORDENAÇÃO DE ARQUIVOS GRANDES Para arquivos binários, é possível implementar o

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos Aula 10 Métodos de Ordenação de Complexidade Linear Edirlei Soares de Lima Ordenação Problema: Entrada: conjunto de itens a 1, a 2,..., a n ; Saída:

Leia mais

Projeto e Análise de Algoritmos Análise de Complexidade. Prof. Luiz Chaimowicz

Projeto e Análise de Algoritmos Análise de Complexidade. Prof. Luiz Chaimowicz Projeto e Análise de Algoritmos Análise de Complexidade Prof. Luiz Chaimowicz AGENDA Modulo 1 Data Assunto Capítulos 05/03 Algoritmos / Invariantes / Intro Análise de Complexidade 07/03 Não Haverá Aula

Leia mais

ALGORITMOS AVANÇADOS. UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão

ALGORITMOS AVANÇADOS. UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão [email protected] http://www.luizleao.com Conteúdo Programático 3.1 - Definição 3.2 - Dividir para conquistar 3.3 - Problema da

Leia mais

COMPUTADOR 2. Professor Adão de Melo Neto

COMPUTADOR 2. Professor Adão de Melo Neto COMPUTADOR 2 Professor Adão de Melo Neto Modelo Barramento de Sistema É uma evolução do Modelo de Von Newman. Os dispositivos (processador, memória e dispositivos de E/S) são interligados por barramentos.

Leia mais

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca Sistemas Operacionais Gerenciamento de Memória Carlos Ferraz ([email protected]) Jorge Cavalcanti Fonsêca ([email protected]) Memória Física vs. Memória do Programa Memória P Física Tamanho dos softwares

Leia mais

5. Algoritmos de Ordenação

5. Algoritmos de Ordenação Introdução à Computação II 5952011 5. Algoritmos de Ordenação Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 5.1. Ordenação por Inserção 5.2. Ordenação por Seleção

Leia mais

Framework para Deduplicação de Dados com Apache Spark

Framework para Deduplicação de Dados com Apache Spark Framework para Deduplicação de Dados com Apache Spark César Magrin - [email protected] Disciplina: Metodologia Científica - CI860 Professor: Alexandre Direne Sumário 1. Qualidade de Dados 2. Deduplicação

Leia mais

Introdução à Ciência da Computação II

Introdução à Ciência da Computação II Introdução à Ciência da Computação II 2semestre/200 Prof Alneu de Andrade Lopes Apresentação com material gentilmente cedido pelas profas Renata Pontin Mattos Fortes http://wwwicmcuspbr/~renata e Graça

Leia mais

Radix Sorting. Várias aplicações têm chaves que são inteiros, definidos dentro de um intervalo

Radix Sorting. Várias aplicações têm chaves que são inteiros, definidos dentro de um intervalo Radix Sorting Os registros a serem ordenados podem ter chaves bastante complexas, como por exemplo sequências de caracteres (lista telefônica) o Ordenação via comparação de chaves Várias aplicações têm

Leia mais

Hashing: conceitos. Hashing

Hashing: conceitos. Hashing Hashing: conceitos hashing é uma técnica conhecida como espalhamento, mapeamento ou randomização que tenta distribuir dados em posições aleatórias de uma tabela (array) associa cada objeto (de um determinado

Leia mais

O mais leve e o mais pesado Algoritmos de Ordenação

O mais leve e o mais pesado Algoritmos de Ordenação Atividade 7 O mais leve e o mais pesado Algoritmos de Ordenação Sumário Os computadores são muitas vezes utilizados para colocar listas em algum tipo de ordem, por exemplo, nomes em ordem alfabética, compromissos

Leia mais

Algoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 3 Conceitos Básicos de Algoritmos Prof. Tiago A. E. Ferreira Definição de Algoritmo Informalmente... Um Algoritmo é qualquer procedimento computacional bem definido

Leia mais

Hashing Endereçamento Direto Tabelas Hash

Hashing Endereçamento Direto Tabelas Hash Hashing Endereçamento Direto Tabelas Hash Professora: Fátima L. S. Nunes 1 1 1 Vimos até agora: Introdução Conceitos e técnicas de Orientação a Objetos Conceitos e aplicações de Complexidade Assintótica

Leia mais

Algoritmos de Ordenação

Algoritmos de Ordenação Algoritmos de Ordenação Introdução à Ciência da Computação Prof. Edison Ishikawa Objetivo Apresentar diferentes algoritmos de ordenação de dados Mostrar como analisar os algoritmos em termos de tempo de

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.2. Estrutura de Programas e Representação

Leia mais

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador; 1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e

Leia mais

Linguagens de Programação Aula 14

Linguagens de Programação Aula 14 Linguagens de Programação Aula 14 Celso Olivete Júnior [email protected] Na aula passada Linguagem Haskell Funções Tipos básicos Expressões 2 Na aula de hoje Linguagem Haskell Listas 3 Listas e Tuplas

Leia mais

VETORES Motivação AULA 19

VETORES Motivação AULA 19 AULA 19 VETORES 19.1 Motivação Considere o problema de calcular a média aritmética das notas de 5 alunos de uma disciplina e determinar e escrever o número de alunos que obtiveram nota superior à média

Leia mais

COMPUTAÇÃO PARALELA E DISTRIBUÍDA

COMPUTAÇÃO PARALELA E DISTRIBUÍDA COMPUTAÇÃO PARALELA E DISTRIBUÍDA Aluno: Alessandro Faletti Orientadora: Noemi Rodriguez Introdução O objetivo inicial no projeto era aplicar a possibilidade de processamento em paralelo no sistema CSBase

Leia mais

Análise empírica de algoritmos de ordenação

Análise empírica de algoritmos de ordenação Análise empírica de algoritmos de ordenação Mario E. Matiusso Jr. (11028407) Bacharelado em Ciências da Computação Universidade Federal do ABC (UFABC) Santo André, SP Brasil mario3001[a]ig.com.br Resumo:

Leia mais

Testes de Hipóteses Não Paramétricos

Testes de Hipóteses Não Paramétricos ACH4513 INFERÊNCIA ESTATÍSTICA 2º Sem/2017 Testes de Hipóteses Não Paramétricos Prof. Marcelo S. Lauretto [email protected] www.each.usp.br/lauretto Referência: W.O.Bussab, P.A.Morettin. Estatística

Leia mais

Introdução à Ciência da Computação

Introdução à Ciência da Computação 1 Universidade Federal Fluminense Campus de Rio das Ostras Curso de Ciência da Computação Introdução à Ciência da Computação Professor: Leandro Soares de Sousa e-mail: [email protected] site:

Leia mais

Solução de Recorrências

Solução de Recorrências CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Solução de Recorrências Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ [email protected]

Leia mais

Aula 5: Conversões Entre Bases Numéricas

Aula 5: Conversões Entre Bases Numéricas Aula 5: Conversões Entre Bases Numéricas Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 1 / 43 Conversão

Leia mais

Aula 3: Algoritmos: Formalização e Construção

Aula 3: Algoritmos: Formalização e Construção Aula 3: Algoritmos: Formalização e Construção Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Algoritmos: Formalização e Pseudo-Código Programação de

Leia mais

Ordenação Externa (Merge Sort)

Ordenação Externa (Merge Sort) Ordenação Externa (Merge Sort) Referências: A.V.Aho, J.E.Hopcroft, J.D.Ullman, Data Structures and Algorithms, Cap. 11. Problema: ordenar dados organizados como arquivos, ou de forma mais geral, ordenar

Leia mais

Os métodos de ordenação que ordenam os elementos in situ podem ser classificados em três principais categorias:

Os métodos de ordenação que ordenam os elementos in situ podem ser classificados em três principais categorias: ORDENAÇÃO A atividade de ordenação é o processo de rearranjo de um certo conjunto de objetos de acordo com um critério (ordem) específico. O objetivo da ordenação é facilitar a localização dos membros

Leia mais

O Problema da Ordenação Métodos de Ordenação Parte 1

O Problema da Ordenação Métodos de Ordenação Parte 1 Métodos de Ordenação Parte 1 SCC-201 Introdução à Ciência da Computação II Rosane Minghim 2010 Ordenação (ou classificação) é largamente utilizada Listas telefônicas e dicionários Grandes sistemas de BD

Leia mais

Algoritmos Computacionais

Algoritmos Computacionais Material produzido por professores da UFABC Objetivos Aprender a sintaxe e a semântica de instruções de saída e de entrada de dados na linguagem PORTUGOL Aprender alguns operadores pra uso na parte de

Leia mais

Aula prática 5. Funções Recursivas

Aula prática 5. Funções Recursivas Programação Funcional UFOP DECOM 2014.1 Aula prática 5 Funções Recursivas Resumo Definições recursivas são comuns na programação funcional. Nesta aula vamos aprender a definir funções recursivas. Sumário

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Fabrício Olivetti de França 21 de Junho de 2018 1 Listas 2 Listas Uma das principais estruturas em linguagens funcionais. Representa uma coleção de valores de um determinado tipo.

Leia mais

Big Data Open Source com Hadoop

Big Data Open Source com Hadoop Big Data Open Source com Hadoop Palestrante: Marcio Junior Vieira [email protected] Realização: Marcio Junior Vieira 14 anos de experiência em informática, vivência em desenvolvimento e análise

Leia mais

Fundamentos de Arquiteturas de Computadores

Fundamentos de Arquiteturas de Computadores Fundamentos de Arquiteturas de Computadores Cristina Boeres Instituto de Computação (UFF) Conversões Entre Bases Numéricas Material de Fernanda Passos (UFF) Conversões Entre Bases Numéricas FAC 1 / 42

Leia mais

Divisão e Conquista. Norton T. Roman. Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder

Divisão e Conquista. Norton T. Roman. Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder Divisão e Conquista Norton T. Roman Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder Divisão e Conquista Construção incremental Ex: Consiste em, inicialmente, resolver

Leia mais

LINGUAGEM ALGORÍTMICA

LINGUAGEM ALGORÍTMICA LINGUAGEM ALGORÍTMICA Adriano Mauro Cansian André Proto UNESP - São José do Rio Preto Linguagem Computacional Introdução! Para uma melhor padronização de nosso estudos, vamos agora definir uma linguagem

Leia mais

Algoritmos II Aula 2 Vetores

Algoritmos II Aula 2 Vetores Algoritmos II Aula 2 Vetores Professor: Max Pereira [email protected] Ciência da Computação Variável Representação simbólica dos elementos de memória de um computador. Cada variável corresponde a uma

Leia mais

A adição de números naturais é associativa, ou seja, resultado da soma de três números naturais independe da ordem da soma dos números.

A adição de números naturais é associativa, ou seja, resultado da soma de três números naturais independe da ordem da soma dos números. . Números Naturais Para qualquer cidadão, contar faz parte da rotina da vida. Por exemplo: contamos dinheiro, contamos pessoas, contamos os itens para saber o que precisamos comprar, contamos objetos em

Leia mais