Você está na página 1de 5

UNIVERSIDADE ESTADUAL DO CEAR UECE SECRETARIA DE EDUCAO A DISTNCIA SEaD Universidade Aberta do Brasil UAB CURSO: Licenciatura em Informtica

ca Polo: Misso Velha Disciplina: ESTRUTURA DE DADOS I PROFESSOR: RICARDO HOLANDA Aluno: Antonio Aparecido de Lima MATRCULA:1148380

ATIVIDADE 1

1. Conceitue com suas palavras pior caso, melhor caso e caso mdio. Resposta no moodle. 2. Como os algoritmos podem ser classificados em relao ordem de sua complexidade? D um exemplo para cada categoria. R= f(n) = k Constante f(n) = k . n Linear f(n) = n . log n Logartmica f(n) = k . n2 Quadrtica f(n) = k . n3 Cbica f(n) = nk Polinomial f(n) = k . en Exponencial O tempo de execuo e o espao de memria alocado so os dois fatores principais que determinam a complexidade computacional de um algoritmo. Complexidade Espacial: Quantidade de recursos utilizados para resolver o problema. Este tipo de complexidade usado para verificar a eficincia do algoritmo quanto ao espao em memria ou espao em disco, por exemplo; Complexidade Temporal: Quantidade de Tempo utilizado. Este tipo de complexidade usado para verificar a eficincia do algoritmo quanto ao uso de CPU, por exemplo. A expresso matemtica que define a complexidade de um algoritmo determinada pela contagem de uma grandeza (por exemplo, as operaes dominantes realizadas). Assim temos a seguinte classificao de algoritmos: Complexidade constante: Algoritmos de complexidade O(1). Independe do tamanho N de entradas e as instrues so executadas em um nmero fixo de vezes; Complexidade linear: Algoritmos de complexidade O(N). O nmero de passos (ou o espao) aumenta linearmente em relao ao tamanho N de entradas. Complexidade logartmica. So os algoritmos de complexidade O(logN); Ocorre tipicamente em algoritmos que dividem o problema em problemas menores. Ex.: o algoritmo de Busca Binria.

UNIVERSIDADE ESTADUAL DO CEAR UECE SECRETARIA DE EDUCAO A DISTNCIA SEaD Universidade Aberta do Brasil UAB CURSO: Licenciatura em Informtica Polo: Misso Velha Disciplina: ESTRUTURA DE DADOS I PROFESSOR: RICARDO HOLANDA Aluno: Antonio Aparecido de Lima MATRCULA:1148380 Complexidade NlogN: Como o prprio nome diz, so algoritmos que tm complexidade O(NlogN). Ocorre tipicamente em algoritmos que dividem o problema em problemas menores, porm juntando posteriormente a soluo dos problemas menores. Ex.: o algoritmo de ordenao QuickSort. Complexidade quadrtica: So os algoritmos de complexidade O(N); Geralmente com um loop dentro do outro. Ex.: o algoritmo de ordenao Bubble Sort. Complexidade cbica: So os algoritmos de complexidade O(N);Itens so processados trs a trs, geralmente com um loop dentro dos outros dois; Ex.: multiplicao de matrizes Complexidade exponencial: So os algoritmos de complexidade O(2N); Geralmente, esses algoritmos so solues simples de um determinado problema. Devido alta complexidade, no so teis sob o ponto de vista prtico 3. Determine o tempo de execuo no pior caso nas seguintes funes: Public void Ex1 (int n) int a; for (int = 0; I <n; i++) a= I; } f(n)= 1+n* (1) f(n)= 1 + n f(n) = O(n) public void Ex2 (int n) int a; for ( int I = 0; I < n; i+=2) 1+ n+n*( 1+ n* ( 1 )

UNIVERSIDADE ESTADUAL DO CEAR UECE SECRETARIA DE EDUCAO A DISTNCIA SEaD Universidade Aberta do Brasil UAB CURSO: Licenciatura em Informtica Polo: Misso Velha Disciplina: ESTRUTURA DE DADOS I PROFESSOR: RICARDO HOLANDA Aluno: Antonio Aparecido de Lima MATRCULA:1148380 a=i } 1 )

f(n)= 1+n + n* (1) f(n)= 1 + n + n f(n)= 1 + 2n f(n) = O(n)

public void Ex3 (int n) int a; for ( int i = 0; i < n * n; i++) a = i; } f(n)= 1 + n * n*(1) f(n)= 1+ f(n) = 0( ) 1+ n * n* ( 1 )

public void Ex4 (int n) int a; for (int i = 0; i < n; i ++) for (int j =0; j < i; j ++) a= i; } f(n)= 1 + n * ( i * 1) f(n) = 1 + n * i f(n) = 0( n * i) 1 + n*( i* 1 )

UNIVERSIDADE ESTADUAL DO CEAR UECE SECRETARIA DE EDUCAO A DISTNCIA SEaD Universidade Aberta do Brasil UAB CURSO: Licenciatura em Informtica Polo: Misso Velha Disciplina: ESTRUTURA DE DADOS I PROFESSOR: RICARDO HOLANDA Aluno: Antonio Aparecido de Lima MATRCULA:1148380 public void Ex5 (int n) int a for (int i = 0; i < n * n, i++) for (int j = 0; j <= i; j ++) a = i; } f(n)= 1 + n * n( i * 1) f(n) = 1 + f(n) = 0( * i) *i 1+ n*n( i* 1 )

4. Dadas as funes f(n) e g(n). Qual funo domina assintoticamente a outra:

A funo que domina assintoticamente a outra a funo g(n), pois o algoritmo dela inferior ao algoritmo de cf(n) para grandes valores de entrada de n.

UNIVERSIDADE ESTADUAL DO CEAR UECE SECRETARIA DE EDUCAO A DISTNCIA SEaD Universidade Aberta do Brasil UAB CURSO: Licenciatura em Informtica Polo: Misso Velha Disciplina: ESTRUTURA DE DADOS I PROFESSOR: RICARDO HOLANDA Aluno: Antonio Aparecido de Lima MATRCULA:1148380 5. Crie uma funo que imprima o terceiro elemento da pilha se este elemento existir, caso no exista a funo deve imprimir Pilha com menos de trs elementos.