UPE Caruaru Sistemas de Informao Disciplina Estrutura de
- Slides: 24
UPE – Caruaru – Sistemas de Informação Disciplina: Estrutura de Dados e Arquivo Prof. : Paulemir G. Campos Análise Algorítmica (Pior Caso) 12/26/2021 EDA - Prof. Paulemir Campos 1
Complexidade de um Algoritmo n Função de Complexidade n n Medida que computa o custo de execução de um algoritmo. Tipos de Função de Complexidade n Em relação ao Tempo E, em relação ao Espaço. 12/26/2021 EDA - Prof. Paulemir Campos n 2
Função de Complexidade de Tempo Registra a quantidade de tempo necessário para executar um algoritmo para resolver um determinado problema. OBS. : Na realidade é calculado o número de vezes que determinada operação considerada relevante é executada (operação dominante). n 12/26/2021 EDA - Prof. Paulemir Campos 3
Função de Complexidade de Espaço Neste caso, mede-se a quantidade de memória necessária para executar um dado algoritmo. OBS. : Como o nosso interesse é verificar a eficiência de algoritmos em relação ao tempo (leia-se nº de vezes que uma operação relevante é executada), as funções de complexidades que estudaremos serão sempre em relação ao tempo, salvo menção explícita. n 12/26/2021 EDA - Prof. Paulemir Campos 4
Métodos de Cálculo da Complexidade n Há duas formas de obtenção da complexidade de tempo de um algoritmo: n n 12/26/2021 Método Empírico Método Analítico EDA - Prof. Paulemir Campos 5
Método Empírico n n Calcula o tempo de execução de um algoritmo através de sua execução propriamente dita, considerando-se entradas diversas. Além disso, também são levados em conta o computador, a linguagem de programação e o compilador utilizados, bem como as condições locais de processamento. 12/26/2021 EDA - Prof. Paulemir Campos 6
Método Analítico n n n Objetiva obter uma ordem de grandeza do tempo de execução de um algoritmo usando uma expressão matemática que represente o comportamento de tempo de um algoritmo. Neste caso, não são levados em conta o computador, a linguagem de programação e o compilador utilizados, e nem as condições locais de processamento. Este será o método adotado neste curso, salvo em caso de menção explícita. 12/26/2021 EDA - Prof. Paulemir Campos 7
Convenções para Obtenção da Expressão Matemática n Por questão de simplificação, convencionouse o seguinte: n n Supor uma quantidade de dados a serem manipulados suficientemente grande; E, não considerar constantes aditivas ou multiplicativas na expressão matemática obtida. OBS. : Isto porquê o interesse é avaliar o comportamento assintótico da função de tempo do algoritmo (Pior caso). 12/26/2021 EDA - Prof. Paulemir Campos 8
Tipos de Análises n Análise de um Algoritmo Particular n n 12/26/2021 Qual é o custo de usar um dado algoritmo para resolver um problema específico? Neste caso, deve ser investigado, geralmente, o número de vezes que cada parte do algoritmo é executada. EDA - Prof. Paulemir Campos 9
Tipos de Análises n Análise de uma Classe de Algoritmos n n 12/26/2021 Qual é o algoritmo de menor custo possível para resolver um problema particular? Assim, toda uma família de algoritmos para resolver um problema específico deve ser investigada, objetivando identificar o melhor possível, dependendo dos limites que o usuário impor. EDA - Prof. Paulemir Campos 10
Tipos de Casos n Pior Caso n n Melhor Caso n n Maior tempo de execução sobre todas as possíveis entradas de tamanho n. Menor tempo de execução sobre todas as possíveis entradas de tamanho n. Caso Médio (Mais difícil de calcular) n 12/26/2021 Média de execução dos tempos de execução de todas as entradas de tamanho n, supondo uma distribuição de probabilidade de ocorrência de cada uma dessa entradas. EDA - Prof. Paulemir Campos 11
Análise de um Algoritmo Particular Considere o seguinte algoritmo para inverter uma seqüência de números inteiros num vetor V de tamanho n (n>1): (passagem por referência) Inverte. Vetor(inteiro V[], n) { inteiro i, temp para i=1 até n/2 incremento 1 faça { temp = V[i] = V[n-i+1] = temp } } n 12/26/2021 EDA - Prof. Paulemir Campos 12
Análise de um Algoritmo Particular n Note que, obtemos os seguintes valores (n>1): n n n Pior caso: n/2 Melhor caso: n/2 Caso médio: n/2 OBS 1. : n/2 significa o maior inteiro menor ou igual a n/2. (Piso de n/2) OBS 2. : n/2 significa o menor inteiro maior ou igual a n/2. (Teto de n/2) 12/26/2021 EDA - Prof. Paulemir Campos 13
Análise de uma Classe de Algoritmos Apresentaremos três algoritmos para encontrar o maior e o menor inteiro de um vetor não ordenado de tamanho n. Vejamos o primeiro (n>0): Max. Min 1(inteiro V[], n, Max, Min) { // passagem por referência inteiro i Max = V[1]; Min = V[1] para i=2 até n incremento 1 faça { se V[i] > Max então Max = V[i] se V[i] < Min então Min = V[i] } } n 12/26/2021 EDA - Prof. Paulemir Campos 14
Análise de uma Classe de Algoritmos n Note que, obtemos os seguintes valores para o Max. Min 1 (n>0): n n Pior caso: 2(n-1) Melhor caso: 2(n-1) Caso médio: 2(n-1) Isto porquê, as operações de comparação são as operações dominantes ou mais relevantes deste algoritmo! 12/26/2021 EDA - Prof. Paulemir Campos 15
Análise de uma Classe de Algoritmos Vejamos o segundo, uma melhoria do anterior (n>0): Max. Min 2(inteiro V[], n, Max, Min) { // passagem por referência inteiro i Max = V[1]; Min = V[1] para i=2 até n incremento 1 faça { se V[i] > Max então Max = V[i] senão se V[i] < Min então Min = V[i] } } n 12/26/2021 EDA - Prof. Paulemir Campos 16
Análise de uma Classe de Algoritmos n Note que, obtemos os seguintes valores para o Max. Min 2 (n>0): n n n Pior caso: 2(n-1) Melhor caso: n-1 Caso médio: 3 n/2 – 3/2 Pior caso: V está em ordem decrescente Melhor caso: V está em ordem crescente Caso Médio: V[i] é maior do que Max a metade das vezes. (n-1 + (n-1)/2) 12/26/2021 EDA - Prof. Paulemir Campos 17
Análise de uma Classe de Algoritmos Por fim, o terceiro desses algoritmos (n>0): Max. Min 3(inteiro V[], n, Max, Min) { // passagem por referência inteiro i, fim. Do. Anel se (n mod 2)>0 então { // Se n for ímpar V[n+1] = V[n] fim. Do. Anel = n } senão fim. Do. Anel = n - 1 se V[1] > V[2] então { Max = V[1]; Min = V[2] } senão { Max = V[2]; Min = V[1] } n 12/26/2021 EDA - Prof. Paulemir Campos 18
Análise de uma Classe de Algoritmos i=3 enquanto (i =< fim. Do. Anel) { se V[i] > V[i+1] então { se V[i] > Max então Max = V[i] se V[i+1] < Min então Min = V[i+1] } senão { se V[i] < Min então Min = V[i] se V[i+1]>Max então Max=V[i+1] } i=i+2 } } 12/26/2021 EDA - Prof. Paulemir Campos 19
Análise de uma Classe de Algoritmos n Note que, obtemos os seguintes valores para o Max. Min 3 (n>0): n n Pior caso: 3 n/2 – 2 Melhor caso: 3 n/2 – 2 Caso médio: 3 n/2 – 2 Isto é: n O resultado da seguinte soma: n n 12/26/2021 n/2 comparações considerando que os elementos do vetor V são comparados dois a dois; 2 vezes (n-2)/2 comparações considerando os subconjuntos imaginários de máximos e mínimos. EDA - Prof. Paulemir Campos 20
Análise de uma Classe de Algoritmos n Comparação entre os três algoritmos para obter o máximo e o mínimo de um vetor de inteiros de tamanho n (n>0): 12/26/2021 EDA - Prof. Paulemir Campos 21
Análise de uma Classe de Algoritmos n Uma observação importante neste tipo de problema. Segundo [Ziviani, 1999], na pág. 10, há o seguinte teorema: “ Qualquer algoritmo para encontrar o maior e o menor elemento de um conjunto com n elementos não ordenados, n 1, faz pelo menos 3 n/2 - 2 comparações. ” 12/26/2021 EDA - Prof. Paulemir Campos 22
Análise de uma Classe de Algoritmos n Ora, como o cálculo de complexidade de tempo desses três algoritmos foi baseado em operações de comparação (operação dominante) e esse teorema especifica o limite inferior desse tipo de algoritmo, então o algoritmo Max. Min 3 apresentado é um algoritmo ótimo para resolver tal tipo de problema. 12/26/2021 EDA - Prof. Paulemir Campos 23
Referências Bibliográficas n n n Ziviani, N. Projeto de Algoritmos: Com implementações em Pascal e C. São Paulo: Pioneira, 5 a. ed. , 1999. Szwarcfiter, J. L. ; Markenzon, L. Estruturas de Dados e seus Algoritmos. Rio de Janeiro: LTC, 2 a. ed. , 1994. Terada, R. Desenvolvimento de Algoritmos e Estruturas de Dados. São Paulo: Mc. Graw-Hill, Makron, 1991. 12/26/2021 EDA - Prof. Paulemir Campos 24
- Krikai
- Upe 2a
- Upe 2017
- Vandens išgraužta vieta
- Regras de nomenclatura dos seres vivos
- A vendedora de roupas esta arrumando os cabides da vitrine
- Ouvidoria hospital oswaldo cruz
- Upe 2a
- Numa competição esportiva cinco atletas
- Kuri afrikos upė vandeningiausia
- As janelas e portas gradeadas com treliças
- Disciplina teletransmitida
- Definición de disciplina
- Definición de disciplina
- Que es la disciplina
- La vara de la disciplina
- Peter senge 1990 the fifth discipline
- Disciplinas del comportamiento organizacional
- Upravljanje razredom
- Contabilidad es la disciplina que enseña las normas
- Pensamiento sistemico peter senge
- Disciplinarea pozitiva a copiilor
- Dos propósitos de estudios sociales
- Literatura disciplina
- Skleride