Sistemas Distribuídos: Princípios e Algoritmos Introdução à Análise de Complexidade de Algoritmos

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

Download "Sistemas Distribuídos: Princípios e Algoritmos Introdução à Análise de Complexidade de Algoritmos"

Transcrição

1 Sistemas Distribuídos: Princípios e Algoritmos Introdução à Análise de Complexidade de Algoritmos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA 20 de agosto de 2012 Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

2 Agenda 1 Medindo Tempo de Execução 2 Classes de Complexidade 3 Definição e Manipulação da Notação Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

3 Medindo Tempo de Execução Medindo Tempo de Execução Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

4 Medindo Tempo de Execução Introdução à Complexidade Este conhecimento permite identificar os algoritmos mais eficientes para resolver vários problemas encontrados com frequência; É muito importante no desenvolvimento de softwares de alta qualidade; A notação assintótica permite comparar a eficiência de algoritmos de forma independente de diferenças de hardware nos quais eles são executados ou de linguagens de programação nas quais eles são implementados. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

5 Medindo Tempo de Execução Ordenação por Seleção void selecao (int[] A) { int maxposition, temp, i, j; for (i = A.length-1; i>0; i--) { maxposition = i; for (j = 0; j < i; j++) { if (A[j] > A[maxPosition]) { maxposition = j; } } // troca A[i] com A[maxPosition] temp = A[i]; A[i] = A[maxPosition]; A[maxPosition] = temp; } } Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

6 Medindo Tempo de Execução Ordenação por Seleção: tempo de execução para 2000 inteiros (ms) Tipo de Computador Tempo microcomputador doméstico 51,915 estação de trabalho 11,508 minicomputador 2,382 mainframe 0,431 supercomputador 0,087 Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

7 Medindo Tempo de Execução Algumas Considerações... Os tempos de execução do algoritmo também variam de acordo com a linguagem de programação utilizada; Mesmo utilizando uma única linguagem, diferentes compiladores gerarão diferentes instruções em linguagem de máquina, gerando tempos de execução diferentes; Algoritmos consomem recursos (como tempo e espaço) que depende do tamanho do problema a ser resolvido; Chamemos de n o tamanho do problema. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

8 Medindo Tempo de Execução Ordenação por Seleção: variando n (ms) Tamanho vetor (n) Comp Doméstico Estação Trab ,5 2, ,3 11, ,8 43, ,3 172, ,9 690,5 Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

9 Medindo Tempo de Execução Representação Gráfica dos Resultados Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

10 Medindo Tempo de Execução Considerações As curvas possuem a forma f(n) = an 2 +bn+c e a diferença entre elas são as constantes a,b,c; Se implementarmos o mesmo algoritmo em diferentes linguagens e executarmos em outras máquinas ele continuará a ter um comportamento quadrático em função do tamanho do vetor; Na análise de complexidade procuramos descobrir a curva que caracteriza o tempo de execução em função do tamanho do problema; Desprezaremos as constantes e termos não dominantes; Para a notação-o, a função f(n) = an 2 +bn+c é dita O(n 2 ): Focamos no termo dominante (an 2 ) e ignoramos o resto (bn+c); ignora-se também a constante a. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

11 Medindo Tempo de Execução Contribuição do Termo n 2 n f(n) an 2 n 2 : % total 125 2,8 2,7 94, ,0 10,8 98, ,4 43,1 99, ,9 172,4 99, ,5 689,6 99,9 Tabela: Considerando a = 0, , b = 0,0004 e c=0,1 Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

12 Classes de Complexidade Classes de Complexidade Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

13 Classes de Complexidade Classes de Complexidade Comuns Nome Notação-O constante O(1) logaritmo O(log n) linear O(n) nlogn O(nlogn) quadrática O(n 2 ) cúbica O(n 3 ) exponencial O(2 n ) exponencial O(10 n ) Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

14 Classes de Complexidade Exemplo Dado um algoritmo A, executado um computador de 1 MIPS, quanto tempo leva para calcular uma solução para diversos tamanhos do problema? Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

15 Classes de Complexidade Convertendo os Resultados... Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

16 Classes de Complexidade Necessidade Mais Usual Que tamanho n pode assumir para que o algoritmo A possa ser executado em um ano ou uma semana ou um dia? Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

17 Classes de Complexidade Considerações sobre as Classes de Complexidade Se pudermos substituir um algoritmo linear A por um algoritmo logarítmico B, um problema que levaria uma hora para ser solucionado por A levaria apenas 31,75 micro-segundos para que B o solucionasse... Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

18 Classes de Complexidade Pior Caso, Caso Médio e Melhor Caso Nem sempre um algoritmo leva o mesmo tempo para resolver problemas de um dado tamanho, independentemente de seus dados de entrada; Isto leva à necessidade de analisarmos o melhor caso, pior caso e o caso médio da execução do algoritmo; O QuickSort, por exemplo, custa em média O(nlogn) mas seu pior caso é O(n 2 ). Pior caso do Quicksort: vetor já ordenado: particionamento gerará uma região com n 1 elementos e outra com apenas 1 elemento. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

19 Classes de Complexidade Lembrando o Funcionamento do QuickSort Dividir: O vetor A[p..r] é particionado em dois sub-vetores A[p..q] e A[q +1..r], onde cada elemento de A[p..q] é menor ou igual a qualquer elemento de A[q +1..r]. Conquistar: Os sub-vetores A[p..q] e A[q + 1..r] são ordenados por chamadas recursivas a QuickSort. Combinar: os vetores são ordenados no próprio vetor A, não é necessário trabalho adicional para combiná-los. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

20 Classes de Complexidade Alguns Exemplos: Algoritmos de Pesquisa Algoritmo Complexidade busca sequencial O(n) busca binária O(log n) tabela de espalhamento a O(1) árvore binária de busca O(log n) a sob certas condições: colisões Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

21 Classes de Complexidade Alguns Exemplos: Algoritmos de Ordenação Algoritmo Complexidade Seleção, Inserção O(n 2 ) QuickSort, HeapSort, MergeSort O(n log n) RadixSort a O(n) a ordenação sem comparações entre os elementos de entrada. Exige que os elementos estejam em uma faixa 1 a k, para algum inteiro k. Quando k = O(n), a ordenação é executada em tempo linear. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

22 Classes de Complexidade Outros Exemplos Algoritmo Complexidade problema do caixeiro viajante a exponencial jogos como xadrez exponencial algoritmo simples para a multiplicação O(n 3 ) de duas matrizes quadradas a dado um mapa com cidades e o custo para viajar entre elas (quando possível), encontrar a rota de menor custo que faça o caixeiro passar exatamente uma vez em cada cidade Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

23 Definição e Manipulação da Notação Definição e Manipulação da Notação Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

24 Definição e Manipulação da Notação Definição da Notação-O Dizemos que f(n) é O(g(n)) se existem constantes positivas K e n 0 tal que f(n) g(n) para todo n n 0. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

25 Definição e Manipulação da Notação Definição da Notação-O Figura: Θ(), O(), Ω() Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

26 Definição e Manipulação da Notação Exemplo de Prova Formal Suponha que um algoritmo A ordene uma sequência de n números, colocando-os em um vetor em ordem ascendente e que o número exato de passos que ele realiza é f(n) = n. Provemos que este algoritmo é O(n 2 ): f(n) = n = 3(1+2+ +n) = 3n(n+1) 2 Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

27 Definição e Manipulação da Notação Exemplo de Prova Formal Se escolhermos K = 3, n 0 = 1 e g(n) = n 2, substituindo na definição formal da notação-o, podemos demonstrar que f(n) g(n) para todo n n 0 e que a desigualdade vale para todo n 1: 3n(n +1) 3n 2 2 n 2 +n 2n 2 n n 2 1 n O que claramente vale para todo n 1. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

28 Definição e Manipulação da Notação Dicas Práticas Para simplificar as provas, utiliza-se atalhos que normalmente compreendem separar a expressão f(n) em um termo determinante e outros termos menores e eliminar estes últimos. Para isto, podemos classificar as funções: O(1) < O(logn) < O(n) < O(nlogn) < O(n 2 ) < O(n 3 ) < O(2 n ) < O(10 n ) Exemplo: O(6n 3 15n 2 +3nlogn) = O(6n 3 ) = O(n 3 ) Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

29 Definição e Manipulação da Notação Base de Logaritmos Não escrevemos a base de logaritmos dado que para mudar a base basta multiplica-lo por uma constante; Exemplo: para mudar um logaritmo da base 2 para a base 10 podemos utilizar a seguinte fórmula: Mas como log 10 n = log 2n log log 2 10 = 0,3010 Poderíamos ter escrito a fórmula de conversão como: log 10 n = 0,3010 log 2 n Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

30 Definição e Manipulação da Notação Considerações finais De acordo com a definição formal, se f(n) é O(n) então é também O(n 2 ),O(n 3 ),... No entanto, o limite que falamos é o mais próximo conhecido; Para problemas pequenos, as constantes podem assumir um papel determinante no desempenho do algoritmo; Portanto, a notação-o não necessariamente é válida para problemas pequenos. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de agosto de / 30

Universidade Federal de Mato Grosso do Sul Faculdade de Computação Disciplina de Verão: Algoritmos e Programação II

Universidade Federal de Mato Grosso do Sul Faculdade de Computação Disciplina de Verão: Algoritmos e Programação II Universidade Federal de Mato Grosso do Sul Faculdade de Computação Disciplina de Verão: Algoritmos e Programação II Professores: Liana Duenha 10 de março de 2014 Professores: Liana Duenha () Universidade

Leia mais

Análise de complexidade

Análise de complexidade Introdução Algoritmo: sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador) Estratégia: especificar (definir propriedades) arquitectura

Leia mais

EFICIÊNCIA DE ALGORITMOS E

EFICIÊNCIA DE ALGORITMOS E AULA 2 EFICIÊNCIA DE ALGORITMOS E PROGRAMAS Medir a eficiência de um algoritmo ou programa significa tentar predizer os recursos necessários para seu funcionamento. O recurso que temos mais interesse neste

Leia mais

Pesquisa Sequencial e Binária

Pesquisa Sequencial e Binária Pesquisa Sequencial e Binária Prof. Wylliams Barbosa Santos wylliamss@gmail.com Introdução à Programação Crédito de Conteúdo: Professora Ceça Moraes Agenda Pesquisa Sequencial Noções de complexidade Pesquisa

Leia mais

Complexidade de Algoritmos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes Edson Prestes Um problema pode ser resolvido através de diversos algoritmos; O fato de um algoritmo resolver um dado problema não significa que seja aceitável na prática. Na maioria das vezes, a escolha

Leia mais

INF 1010 Estruturas de Dados Avançadas

INF 1010 Estruturas de Dados Avançadas INF 1010 Estruturas de Dados Avançadas Listas de Prioridades e Heaps 1 Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um

Leia mais

Métodos de Pesquisa em Memória Primária

Métodos de Pesquisa em Memória Primária Algoritmos e Estrutura de Dados II Métodos de Pesquisa em Memória Primária Prof Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Pesquisa Por pesquisa (procura ou busca) entende-se o ato

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 04: Análise de Algoritmos (Parte 1) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes

Leia mais

Pesquisa Sequencial e Binária. Introdução à Programação SI2

Pesquisa Sequencial e Binária. Introdução à Programação SI2 Pesquisa Sequencial e Binária Introdução à Programação SI2 3 Contexto Diferentes estratégias para pesquisa (busca) de um elemento específico em um conjunto de dados. Lista, array, coleção Operação importante,

Leia mais

Aula 03 Custos de um algoritmo e funções de complexidade

Aula 03 Custos de um algoritmo e funções de complexidade BC1424 Algoritmos e Estruturas de Dados I Aula 03 Custos de um algoritmo e funções de complexidade Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2015 1 Custo de um algoritmo e funções de complexidade

Leia mais

Projeto e Análise de Algoritmos. Profa. Juliana Kaizer Vizzotto. Projeto e Análise de Algoritmos - Aula 1

Projeto e Análise de Algoritmos. Profa. Juliana Kaizer Vizzotto. Projeto e Análise de Algoritmos - Aula 1 Projeto e Análise de Algoritmos Profa. Juliana Kaizer Vizzotto Projeto e Análise de Algoritmos - Aula 1 Roteiro Introdução Exemplo: ordenação Introdução Análise de Algoritmos Estudo teórico da performance

Leia mais

Árvores Binárias de Busca

Árvores Binárias de Busca Árvores Binárias de Busca Uma Árvore Binária de Busca T (ABB) ou Árvore Binária de Pesquisa é tal que ou T = 0 e a árvore é dita vazia ou seu nó contém uma chave e: 1. Todas as chaves da sub-árvore esquerda

Leia mais

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO Rua Dom Manoel de Medeiros, s/n Dois Irmãos 52171-900 Recife-PE Fone: 0xx-81-332060-40 proreitor@preg.ufrpe.br PLANO DE ENSINO

Leia mais

Algoritmos de Ordenação Eficiência de Algoritmos

Algoritmos de Ordenação Eficiência de Algoritmos AlgoritmosdeOrdenação EficiênciadeAlgoritmos Antes de abordarmos os algoritmo de ordenac ão iremos falar umpoucosobreaeficiênciadealgoritmos UniversidadedeSãoPaulo InstitutodeCiênciasMatemáticasedeComputação

Leia mais

FACULDADE DE IMPERATRIZ - FACIMP BACHARELADO EM SISTEMAS DE INFORMAÇÃO ESTRUTURA DE DADOS 2. Vieira Lima Junior. Everson Santos Araujo

FACULDADE DE IMPERATRIZ - FACIMP BACHARELADO EM SISTEMAS DE INFORMAÇÃO ESTRUTURA DE DADOS 2. Vieira Lima Junior. Everson Santos Araujo 1 FACULDADE DE IMPERATRIZ - FACIMP BACHARELADO EM SISTEMAS DE INFORMAÇÃO ESTRUTURA DE DADOS 2 Vieira Lima Junior Everson Santos Araujo ALGORITMOS DE ORDENAÇÃO: estudo comparativo de diversos algoritmos

Leia mais

INSTITUTO VIANNA JÚNIOR FACULDADES INTEGRADAS VIANNA JÚNIOR ANÁLISE DA COMPLEXIDADE DE ALGORITMOS DE ORDENAÇÃO

INSTITUTO VIANNA JÚNIOR FACULDADES INTEGRADAS VIANNA JÚNIOR ANÁLISE DA COMPLEXIDADE DE ALGORITMOS DE ORDENAÇÃO INSTITUTO VIANNA JÚNIOR FACULDADES INTEGRADAS VIANNA JÚNIOR ANÁLISE DA COMPLEXIDADE DE ALGORITMOS DE ORDENAÇÃO Lúcia Helena de Magalhães 1 Mônica de Lourdes Souza Batista 2 Teresinha Moreira Magalhães

Leia mais

Figura 1 Busca Linear

Figura 1 Busca Linear ----- Evidentemente, possuir os dados não ajuda o programador ou o usuário se eles não souberem onde os dados estão. Imagine, por exemplo, uma festa de casamento com cem convidados na qual não se sabe

Leia mais

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2 FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO Projeto e Análise de Algoritmos II Lista de Exercícios 2 Prof. Osvaldo. 1. Desenvolva algoritmos para as operações abaixo e calcule a complexidade

Leia mais

Recursividade. Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br. BCC202 Aula 08 Algoritmos e Estruturas de Dados I

Recursividade. Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br. BCC202 Aula 08 Algoritmos e Estruturas de Dados I Recursividade Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 08 Algoritmos e Estruturas de Dados I Outros Exemplos de Recursividade Factais são outros exemplos de recursividade Quando

Leia mais

MC102 Algoritmos e Programação de Computadores

MC102 Algoritmos e Programação de Computadores MC102 Algoritmos e Programação de Computadores Instituto de Computação UNICAMP Primeiro Semestre de 2015 Roteiro 1 Fundamentos de análise de algoritmos 2 Cálculo da função de custo 3 Exercícios Instituto

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

Resolução de problemas e desenvolvimento de algoritmos

Resolução de problemas e desenvolvimento de algoritmos SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de

Leia mais

Linguagens Livres de Contexto e Autômatos a Pilha (Push- Down) Um Modelo de Computação de Força Intermediária. Gramática Livre de Contexto

Linguagens Livres de Contexto e Autômatos a Pilha (Push- Down) Um Modelo de Computação de Força Intermediária. Gramática Livre de Contexto LFA - PARTE 2 Linguagens Livres de Contexto e Autômatos a Pilha (Push- Down) Um Modelo de Computação de Força Intermediária João Luís Garcia Rosa LFA-FEC-PUC-Campinas 2002 R. Gregory Taylor: http://starbase.cs.trincoll.edu/~rtaylor/thcomp/

Leia mais

Análise de Algoritmos: Melhor caso, pior caso, caso médio

Análise de Algoritmos: Melhor caso, pior caso, caso médio Análise de Algoritmos: Melhor caso, pior caso, caso médio Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 25 Sumário Rever um problema e um algoritmo que já conhecem. Descrevê-lo em pseudo-código

Leia mais

Quão rápido podemos ordenar? Aula07-LimiteInferiorpara Ordenação. Quão rápido podemos ordenar? Árvore de Decisão- Exemplo. Ordenação em Tempo Linear

Quão rápido podemos ordenar? Aula07-LimiteInferiorpara Ordenação. Quão rápido podemos ordenar? Árvore de Decisão- Exemplo. Ordenação em Tempo Linear Quão rápido podemos ordenar? Aula07-LimiteInferiorpara Ordenação Ordenação em Tempo Linear Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Um algoritmo baseado em comparação para

Leia mais

C A D E R N O D E P R O V A S

C A D E R N O D E P R O V A S CONCURSO PÚBLICO ASSEMBLEIA LEGISLATIVA DO ESTADO DE MINAS GERAIS C A D E R N O D E P R O V A S CADERNO 3 ESPECIALIDADE: ANALISTA DE SISTEMAS/ÁREA III (SUPORTE TÉCNICO) PROVA: CONHECIMENTOS ESPECÍFICOS

Leia mais

Pointer Jumping. odg(v) e idg(v): graus de saída e entrada do vértice v V. um vértice r tal que. O vértice r é dita raíz de T

Pointer Jumping. odg(v) e idg(v): graus de saída e entrada do vértice v V. um vértice r tal que. O vértice r é dita raíz de T Pointer Jumping T = (V,E) : árvore direcionada odg(v) e idg(v): graus de saída e entrada do vértice v V um vértice r tal que v V-{r}, odg(v) = 1, odg(r)=0 v V-{r}, um caminho de v a r O vértice r é dita

Leia mais

Aula 03 Limite assintótico para a ordenação, Ordenação em tempo linear

Aula 03 Limite assintótico para a ordenação, Ordenação em tempo linear MC3305 Algoritmos e Estruturas de Dados II Aula 03 Limite assintótico para a ordenação, Ordenação em tempo linear Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 2Q-2015 1 2 Ordenação Ordenar corresponde

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Universidade Federal de Alfenas Projeto e Análise de Algoritmos Aula 04 Introdução a Análise de Algoritmos humberto@bcc.unifal-mg.edu.br Última aula Fundamentos de Matemática Exercícios: Somatórios; Logaritmos

Leia mais

Algoritmos de Ordenação

Algoritmos de Ordenação CENTRO DE CIÊNCIAS EXATAS DEPARTAMENTO DE COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Algoritmos de Ordenação Alunos: André Ricardo Gonçalves Luiz Gustavo Andrade dos Santos Paulo Roberto Silla Profa. Linnyer Beatrys

Leia mais

3 Sistemas de Numeração:

3 Sistemas de Numeração: 3 Sistemas de Numeração: Os computadores eletrônicos têm como base para seu funcionamento a utilização de eletricidade. Diferente de outras máquinas que a presença ou ausência de eletricidade apenas significam

Leia mais

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.1. Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.1. Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005. Agenda Análise e Técnicas de Algoritmos Introdução Informal Motivação Jorge Figueiredo Visão Geral do do Curso Introdução Informal O nosso curso é sobre técnicas e análise de de algoritmos (computacionais).

Leia mais

ESTRUTURA DE DADOS PILHA

ESTRUTURA DE DADOS PILHA ESTRUTURA DE DADOS PILHA CONCEITO DE PILHAS - Pilhas são listas lineares onde a inserção de um novo item ou a remoção de um item já existente se dá em uma única extremidade, no topo. Pilha vazia Insere(A)

Leia mais

Aula 04 Ordenação parcial

Aula 04 Ordenação parcial MC3305 Algoritmos e Estruturas de Dados II Aula 04 Ordenação parcial Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 2Q-2015 1 Ordenação Limite assintótico para algoritmos de ordenação baseadas em comparações

Leia mais

Capítulo 19. Algoritmos de Ordenação e de Pesquisa. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 19. Algoritmos de Ordenação e de Pesquisa. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 19 Algoritmos de Ordenação e de Pesquisa Objetivos do Capítulo Conceituar ordenação e pesquisa. Apresentar os algoritmos de ordenação por troca, por seleção e por inserção. Explorar os algoritmos

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 08 Busca em Vetor Edirlei Soares de Lima Busca em Vetor Problema: Entrada: vetor v com n elementos; elemento d a procurar; Saída: m se o elemento procurado

Leia mais

Programação Elementar de Computadores Jurandy Soares

Programação Elementar de Computadores Jurandy Soares Programação Elementar de Computadores Jurandy Soares Básico de Computadores Computador: dispositivos físicos + programas Dispositivos físicos: hardware Programas: as instruções que dizem aos dispositivos

Leia mais

Árvores. Algoritmos e Estruturas de Dados 2005/2006

Árvores. Algoritmos e Estruturas de Dados 2005/2006 Árvores Algoritmos e Estruturas de Dados 2005/2006 Árvores Conjunto de nós e conjunto de arestas que ligam pares de nós Um nó é a raiz Com excepção da raiz, todo o nó está ligado por uma aresta a 1 e 1

Leia mais

Estruturas de Dados. Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos

Estruturas de Dados. Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos Estruturas de Dados Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos Árvores Conceitos Árvores binárias Árvores binárias de pesquisa Árvores binárias balanceadas Árvores ESTRUTURAS

Leia mais

Pesquisa em Memória Primária. Prof. Jonas Potros

Pesquisa em Memória Primária. Prof. Jonas Potros Pesquisa em Memória Primária Prof. Jonas Potros Pesquisa em Memoria Primária Estudo de como recuperar informação a partir de uma grande massa de informação previamente armazenada. A informação é dividida

Leia mais

ESTRUTURAS DE INFORMAÇÃO E ANÁLISE DE ALGORITMOS

ESTRUTURAS DE INFORMAÇÃO E ANÁLISE DE ALGORITMOS ESTRUTURAS DE INFORMAÇÃO E ANÁLISE DE ALGORITMOS Estrutura de informação é uma maneira sistemática de organizar e aceder a dados e algoritmo é um procedimento passo a passo para realizar uma tarefa num

Leia mais

ALGORITMOS E ESTRUTURAS DE DADOS CES-11 CES-11 CES-11

ALGORITMOS E ESTRUTURAS DE DADOS CES-11 CES-11 CES-11 ALGORITMOS E ESTRUTURAS DE DADOS Prof. Paulo André Castro pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac IECE - ITA Uma árvore binária é: uma árvore vazia; ou uma árvore onde qualquer

Leia mais

CI165 Introdução. André Vignatti. 31 de julho de 2014

CI165 Introdução. André Vignatti. 31 de julho de 2014 Introdução 31 de julho de 2014 Antes de mais nada... Os slides de 6 aulas (introdução, insertion sort, mergesort, quicksort, recorrências e limitantes de ordenação) foram originalmente feitos pelos Profs.

Leia mais

Árvore Binária de Busca

Árvore Binária de Busca Árvore Binária de Busca 319 Árvore Binária de Busca! construída de tal forma que, para cada nó:! nós com chaves menores estão na sub-árvore esquerda! nós com chaves maiores (ou iguais) estão na subárvore

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Índice. Capítulo 2 Estrutura de Dados sequencial com armazenamento sequencial

Índice. Capítulo 2 Estrutura de Dados sequencial com armazenamento sequencial Índice i Índice Capítulo 2 Estrutura de Dados sequencial com armazenamento sequencial 1. A Estrutura Abstrata de Dados Lista... 1 1.1. Definição... 1 1.2. Implementação de Listas utilizando armazenamento

Leia mais

Programas simples em C

Programas simples em C Programas simples em C Problema 1. Escreve um programa em C que dados dois inteiros indique se são iguais ou qual o maior. Utilizar a construção em 5 etapas... quais? 1. Perceber o problema 2. Ideia da

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Uma visão de Intratabilidade, Classes P e NP - redução polinomial - NP-completos e NP-difíceis Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com

Leia mais

Sumário. 5COP096 Teoria da Computação Aula 8 Pesquisa em Memória Primária

Sumário. 5COP096 Teoria da Computação Aula 8 Pesquisa em Memória Primária 5COP096 Teoria da Computação Aula 8 Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr barbon@uel.br 1 Sumário 1) Introdução à Pesquisa em Memória Primária 2) Pesquisa Sequencial 3) Pesquisa Binária 4) Árvore

Leia mais

Lição 1 Introdução à programação de computadores

Lição 1 Introdução à programação de computadores Lição Introdução à programação de computadores Introdução à Programação I Objetivos Ao final desta lição, o estudante será capaz de: Identificar os diferentes componentes de um computador Conhecer linguagens

Leia mais

PLANO DE ENSINO. DISCIPLINA: (06241) Algoritmos e Estruturas de Dados. PRÉ-REQUISITOS: Matemática Discreta e Introdução a Programação

PLANO DE ENSINO. DISCIPLINA: (06241) Algoritmos e Estruturas de Dados. PRÉ-REQUISITOS: Matemática Discreta e Introdução a Programação UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO Rua Dom Manoel de Medeiros, s/n Dois Irmãos 52171-900 Recife-PE Fone: 0xx-81-332060-40 proreitor@preg.ufrpe.br PLANO DE ENSINO

Leia mais

ESTRUTURAS DE DADOS AVANÇADAS (INF 1010) (a) Seja um TAD definido por uma lista circular implementada em um vetor.

ESTRUTURAS DE DADOS AVANÇADAS (INF 1010) (a) Seja um TAD definido por uma lista circular implementada em um vetor. PUC-Rio Departamento de Informática Período: 2015.1 Horário: 2as-feiras e 4as-feiras de 17-19 30 de março de 2015 ESTRUTURAS DE DADOS AVANÇADAS (INF 1010) 1 a Lista de Exercícios 1. Lista (a) Seja um TAD

Leia mais

Capítulo 2: Introdução à Linguagem C

Capítulo 2: Introdução à Linguagem C Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso

Leia mais

ALGORITMO I ESTRUTURA DE CONTROLE REPETIÇÃO PARA / ENQUANTO;

ALGORITMO I ESTRUTURA DE CONTROLE REPETIÇÃO PARA / ENQUANTO; ALGORITMO I ESTRUTURA DE CONTROLE REPETIÇÃO PARA / ENQUANTO; Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 1 ALGORITMO I ESTRUTURA DE REPETIÇÃO - Utilizando PARA Na repetição uma sequência

Leia mais

Pesquisa em Memória Primária. Algoritmos e Estruturas de Dados II

Pesquisa em Memória Primária. Algoritmos e Estruturas de Dados II Pesquisa em Memória Primária Algoritmos e Estruturas de Dados II Pesquisa em Memória Primária Pesquisa: Recuperação de informação em um grande volume de dados Informação é dividida em registros e cada

Leia mais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais Notas da Aula 4 - Fundamentos de Sistemas Operacionais 1. Threads Threads são linhas de execução dentro de um processo. Quando um processo é criado, ele tem uma única linha de execução, ou thread. Esta

Leia mais

Representação de Dados (inteiros não negativos)

Representação de Dados (inteiros não negativos) Representação de Dados (inteiros não negativos) 1 Memória Armazena instruções e dados durante a execução de um programa A memória principal pode ser vista como um array de bytes, cada um com seu endereço

Leia mais

Estruturas de Dados I

Estruturas de Dados I UFES - Curso de verão 2011 Estruturas de Dados I Profa. Juliana Pinheiro Campos jupcampos@gmail.com Árvores binárias de busca (ou São árvores projetadas para dar suporte a operações de busca de forma eficiente.

Leia mais

Algoritmos de Busca em Tabelas

Algoritmos de Busca em Tabelas Dentre os vários algoritmos fundamentais, os algoritmos de busca em tabelas estão entre os mais usados. Considere por exemplo um sistema de banco de dados. As operações de busca e recuperação dos dados

Leia mais

Programação 1. Rafael Vargas Mesquita. http://www.ci.ifes.edu.br ftp://ftp.ci.ifes.edu.br/informatica/mesquita/

Programação 1. Rafael Vargas Mesquita. http://www.ci.ifes.edu.br ftp://ftp.ci.ifes.edu.br/informatica/mesquita/ Programação 1 Rafael Vargas Mesquita http://www.ci.ifes.edu.br ftp://ftp.ci.ifes.edu.br/informatica/mesquita/ Definições Básicas Lógica de programação é a técnica de desenvolver algoritmos (sequências

Leia mais

À Maria, esposa e companheira, Patricia e Paula, nossas filhas.

À Maria, esposa e companheira, Patricia e Paula, nossas filhas. À Maria, esposa e companheira, Patricia e Paula, nossas filhas. Dados Internacionais de Catalogação na Publicação (CIP) (Cimara Brasileira do Livro, SP, Brasil) Ziviani, Nivio Projeto de algoritmos com

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Eleição de Coordenador

Sistemas Distribuídos: Conceitos e Projeto Eleição de Coordenador Sistemas Distribuídos: Conceitos e Projeto Eleição de Coordenador Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br

Leia mais

Ler e interpretar simbologias elétricas. Elaborar diagramas elétricos em planta baixa. Ler e interpretar Planta Baixa.

Ler e interpretar simbologias elétricas. Elaborar diagramas elétricos em planta baixa. Ler e interpretar Planta Baixa. : Técnico em Informática Descrição do Perfil Profissional: O profissional com habilitação Técnica em Microinformática, certificado pelo SENAI-MG, deverá ser capaz de: preparar ambientes para a instalação

Leia mais

Curso de C. Introdução. Copyright @ 2005 by Arnaldo V. Moura e Daniel F. Ferber

Curso de C. Introdução. Copyright @ 2005 by Arnaldo V. Moura e Daniel F. Ferber Curso de C Introdução Introdução Roteiro: Recordando Algoritmos Linguagem de Programação O computador Instruções de Máquina Níveis de Abstração Compilação Algoritmos Recordando: Algoritmo: conjunto finito

Leia mais

TABELA DE EQUIVALÊNCIA FECOMP Curso de Engenharia de Computação

TABELA DE EQUIVALÊNCIA FECOMP Curso de Engenharia de Computação TABELA DE EQUIVALÊNCIA FECOMP Curso de Engenharia de Computação Disciplina A Disciplina B Código Disciplina C/H Curso Disciplina C/H Código Curso Ano do Currículo 66303 ESTRUTURA DE DADOS I 68/0 ENG. DE

Leia mais

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis. 3. Tabelas de Hash As tabelas de hash são um tipo de estruturação para o armazenamento de informação, de uma forma extremamente simples, fácil de se implementar e intuitiva de se organizar grandes quantidades

Leia mais

PLANIFICAÇÃO DA DISCIPLINA DE APLICAÇÕES INFORMÁTICAS B

PLANIFICAÇÃO DA DISCIPLINA DE APLICAÇÕES INFORMÁTICAS B PLANIFICAÇÕES SECUNDÁRIO PLANIFICAÇÃO DA DISCIPLINA DE APLICAÇÕES INFORMÁTICAS B 12º ANO DE ESCOLARIDADE CONTEÚDOS PROGRAMÁTICOS Introdução à Programação Introdução Linguagens naturais e formais Algoritmos

Leia mais

ANÁLISE DE ALGORITMOS

ANÁLISE DE ALGORITMOS Universidade Estadual de Campinas UNICAMP Centro Superior de Educação Tecnológica CESET ANÁLISE DE ALGORITMOS ST067 TÓPICOS ESPECIAIS EM INFORMÁTICA Prof.: Marco Antonio Garcia de Carvalho Fevereiro 2004

Leia mais

Pesquisa digital. Algoritmos e Estruturas de Dados II

Pesquisa digital. Algoritmos e Estruturas de Dados II Pesquisa digital Algoritmos e Estruturas de Dados II Pesquisa digital A pesquisa digital usa a representação das chaves para estruturar os dados na memória Por exemplo, a representação de um número em

Leia mais

Algoritmia e Estruturas de Dados

Algoritmia e Estruturas de Dados JOSÉ BRAGA DE VASCONCELOS JOÃO VIDAL DE CARVALHO Algoritmia e Estruturas de Dados Programação nas linguagens C e JAVA Portugal/2005 Reservados todos os direitos por Centro Atlântico, Lda. Qualquer reprodução,

Leia mais

Introdução às Linguagens de Programação

Introdução às Linguagens de Programação Introdução às Linguagens de Programação Histórico de Linguagens de Programação O computador não faz nada sozinho Precisamos informar, de forma clara, como ele deve executar as tarefas Ou seja, o computador

Leia mais

1. Introdução... 1 1.1. Definição... 1 1.2. Conceitos relacionados... 2

1. Introdução... 1 1.1. Definição... 1 1.2. Conceitos relacionados... 2 Índice i Índice Capítulo 4 Estrutura de Dados não sequencial com armazenamento não sequencial ( Árvore ) 1. Introdução... 1 1.1. Definição... 1 1.2. Conceitos relacionados... 2 2. Árvores binárias... 2

Leia mais

2ª Lista de Exercícios

2ª Lista de Exercícios Universidade Federal de Minas Gerais Departamento de Ciência da Computação Algoritmos e Estruturas de Dados II (Turmas M, N, W, F) 1º Semestre de 2012 Profs. Camilo Oliveira, Gisele Pappa, Ítalo Cunha,

Leia mais

DICIONÁRIOS. template class Par { public: K chave; T valor; Par():chave(),valor()

DICIONÁRIOS. template<class K,class T> class Par { public: K chave; T valor; Par():chave(),valor() DICIONÁRIOS Esta estrutura inclui-se nos chamados contentores associativos, que não são mais do que uma colecção de estruturas de tipo Par, com dois membros de dados (chave de pesquisa e valor associado),

Leia mais

Disciplina: INTRODUÇÃO AOS SISTEMAS DE COMPUTAÇÃO Carga Horária: 68 (sessenta e oito) horas Crédítos: 04 (quatro)

Disciplina: INTRODUÇÃO AOS SISTEMAS DE COMPUTAÇÃO Carga Horária: 68 (sessenta e oito) horas Crédítos: 04 (quatro) Disciplina: INTRODUÇÃO AOS SISTEMAS DE COMPUTAÇÃO Carga Horária: 68 (sessenta e oito) horas Crédítos: 04 (quatro) 1. EMENTA: Histórico da computação. Computadores: estrutura funcional, periféricos, organização

Leia mais

LÓGICA DE PROGRAMAÇÃO

LÓGICA DE PROGRAMAÇÃO Todos direitos reservados. Proibida a reprodução, mesmo parcial, por qualquer processo mecânico, eletrônico, reprográfico, etc., sem a autorização, por escrito, do(s) autor(es) e da editora. LÓGICA DE

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

CURSO DE PROGRAMAÇÃO EM JAVA CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro

Leia mais

Algoritmos Eficientes de Ordenação

Algoritmos Eficientes de Ordenação AED 2002/2003 p.1/22 Algoritmos Eficientes de Ordenação Quick Sort Merge Sort Heap Sort Utilizar informação das chaves: Counting Sort Radix Sort AED 2002/2003 p.2/22 Quick Sort int partition(item a[],

Leia mais

Algoritmos de pesquisa. Tabelas de dispersão/hash

Algoritmos de pesquisa. Tabelas de dispersão/hash Algoritmos de pesquisa Tabelas de dispersão/hash Introdução Motivação: Considerar o problema de pesquisar um determinado valor num vetor (array). Se o vetor não está ordenado, a pesquisa requer O(n) de

Leia mais

Processamento da Informação Teoria. Algoritmos e Tipos de dados

Processamento da Informação Teoria. Algoritmos e Tipos de dados Processamento da Informação Teoria Algoritmos e Tipos de dados Semana 01 Prof. Jesús P. Mena-Chalco 24/04/2013 (*) Slides adaptados das aulas do Prof. Harlen Costa Batagelo Algumas definições de algoritmo

Leia mais

SECRETÁRIA DE ESTADO DA EDUCAÇÃO DO PARANÁ CURSO PROFISSIONALIZANTE INFORMÁTICA

SECRETÁRIA DE ESTADO DA EDUCAÇÃO DO PARANÁ CURSO PROFISSIONALIZANTE INFORMÁTICA SECRETÁRIA DE ESTADO DA EDUCAÇÃO DO PARANÁ CURSO PROFISSIONALIZANTE INFORMÁTICA Documento elaborado no encontro realizado de 10 a 12 de agosto de 2004. Curitiba, PR Perfil do Profissional Ao final de cada

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA

UNIVERSIDADE FEDERAL DE SANTA MARIA 1 UNIVERSIDADE FEDERAL DE SANTA MARIA Disciplina de Algoritmos e Programação Profa: Juliana Kaizer Vizzotto Lista de Exercícios Vetores Para a implementação de programas que solucionem os problemas a seguir

Leia mais

MC102 Algoritmos e Programação de Computadores 1ª Aula Introdução à Programação de Computadores

MC102 Algoritmos e Programação de Computadores 1ª Aula Introdução à Programação de Computadores MC102 Algoritmos e Programação de Computadores 1ª Aula Introdução à Programação de Computadores 1. Objetivos Situar a atividade de programação de computadores Apresentar conceitos fundamentais relativos

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:

Leia mais

Sistemas de numeração

Sistemas de numeração E Sistemas de numeração Aqui estão apenas números ratificados. William Shakespeare A natureza tem algum tipo de sistema de coordenadas geométrico-aritmético, porque a natureza tem todos os tipos de modelos.

Leia mais

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação LP: Laboratório de Programação Apontamento 7 Prof. ISVega Março de 2004 Controle de Execução: Seleção Simples CONTEÚDO

Leia mais

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Prof. Bruno Vilela Oliveira bruno@cca.ufes.br http://www.brunovilela.webnode.com.br Programas e Linguagens Para executar uma tarefa

Leia mais

Fundamentos da Informática

Fundamentos da Informática 1 PROCESSAMENTO DE DADOS I - FUNDAMENTOS A) CONCEITO DE INFORMÁTICA - é a ciência que estuda o tratamento automático e racional da informação. B) PROCESSAMENTO DE DADOS 1) Conceito Processamento de dados

Leia mais

Hashing. Estruturas de Dados. Motivação

Hashing. Estruturas de Dados. Motivação Estruturas de Dados Hashing Prof. Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis em http://ww3.datastructures.net (Goodrich & Tamassia). Motivação

Leia mais

pf = calcule; /* inicializa ponteiro */ (*pf)(7, 17); /* invoca funcao */

pf = calcule; /* inicializa ponteiro */ (*pf)(7, 17); /* invoca funcao */ GABARITO IIG15 Questão 1 O destino de um programa sendo executado pelo sistema operacional é ter seu conjunto de instruções armazenado na memória, tal como acontece com seus dados. De forma similar aos

Leia mais

Algoritmo e Programação

Algoritmo e Programação Algoritmo e Programação Professor: José Valentim dos Santos Filho Colegiado: Engenharia da Computação Prof.: José Valentim dos Santos Filho 1 Ementa Noções básicas de algoritmo; Construções básicas: operadores,

Leia mais

Tabela de símbolos: tabelas de espalhamento

Tabela de símbolos: tabelas de espalhamento Tabela de símbolos: tabelas de espalhamento Marcelo K. Albertini 14 de Janeiro de 2014 2/28 Resumo de complexidades Análises para operação efetuada após N inserções pior caso caso médio keys chave get

Leia mais

Primeiro Curso de Programação em C 3 a Edição

Primeiro Curso de Programação em C 3 a Edição Edson Luiz França Senne Primeiro Curso de Programação em C 3 a Edição Visual Books Sumário Prefácio da Terceira Edição 9 Prefácio da Primeira Edição 11 Aula 1 13 Regras de sintaxe de uma linguagem de programação...

Leia mais

1 - Processamento de dados

1 - Processamento de dados Conceitos básicos sobre organização de computadores 2 1 - Processamento de dados O que é processamento? O que é dado? Dado é informação? Processamento é a manipulação das informações coletadas (dados).

Leia mais

COMPILADORES E INTERPRETADORES

COMPILADORES E INTERPRETADORES Aula 16 Arquitetura de Computadores 12/11/2007 Universidade do Contestado UnC/Mafra Curso Sistemas de Informação Prof. Carlos Guerber COMPILADORES E INTERPRETADORES Um compilador transforma o código fonte

Leia mais

Complexidade de Algoritmos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes Edson Prestes Caminhos de custo mínimo em grafo orientado Este problema consiste em determinar um caminho de custo mínimo a partir de um vértice fonte a cada vértice do grafo. Considere um grafo orientado

Leia mais

Na resolução de um problema por meio de um programa, a primeira providência é conceber um algoritmo adequado.

Na resolução de um problema por meio de um programa, a primeira providência é conceber um algoritmo adequado. Estrutura de Dados Introdução Extraído de : Estruturas de Dados Homero L. Pícollo Na resolução de um problema por meio de um programa, a primeira providência é conceber um algoritmo adequado. A eficiência

Leia mais

Universidade Estadual de Mato Grosso do Sul - Curso de Ciência da Computação Disciplina: Estruturas de Dados Profª. Raquel Marcia Müller

Universidade Estadual de Mato Grosso do Sul - Curso de Ciência da Computação Disciplina: Estruturas de Dados Profª. Raquel Marcia Müller 1 Listas Lineares Dentre as estruturas de dados não primitivas, as listas lineares são as de manipulação mais simples. Uma lista linear agrupa informações referentes a um conjunto de elementos que, de

Leia mais

Análises Geração RI (representação intermediária) Código Intermediário

Análises Geração RI (representação intermediária) Código Intermediário Front-end Análises Geração RI (representação intermediária) Código Intermediário Back-End Geração de código de máquina Sistema Operacional? Conjunto de Instruções do processador? Ambiente de Execução O

Leia mais