Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Centro Universitário do Leste de Minas Gerais Curso de Computação – Sistemas de Informação Algoritmos e Estruturas de Dados III Prova 3 – 30/11/2009 – Valor: 25 pontos Nome: _______________________________________________________ 1 Usando as propriedades básicas da notação O, simplifique as funções abaixo. (6 pontos). a) b) c) 2 Faça o rastreio do algoritmo da partição listado para o vetor mostrado abaixo. (7 pontos) int particao(int v[], int esq, int dir) { int i, j, pivo, aux; pivo = v[dir]; i = -1; j = dir; while(true) { while(v[++i]<pivo) ; while(j>esq && v[--j]>pivo) ; if(i >= j) break; aux = v[i]; v[i] = v[j]; v[j] = aux; } v[dir] = v[i]; v[i] = pivo; return i; } Vetor: 12 54 60 47 33 10 42 102 70 56 0 1 2 3 4 5 6 7 8 9 3 A afirmação abaixo é verdadeira ou falsa? Justifique sua resposta. (4 pontos) “Se dois algoritmos A e B têm custo O(n), então o desempenho dos dois é exatamente igual.” 4 Faça a análise do melhor caso das operações de movimentação do algoritmo de ordenação pelo método da inserção listado abaixo. Explique textualmente os passos que você utilizar. (4 pontos) void insercao(int v[], int n) { int i, j, aux; for(i=1; i<n; i++) { aux = v[i]; j = i; while(j>0 && v[j-1] > aux) { v[j]=v[j-1]; j--; } v[j] = aux; } } 5 Um algoritmos O(1) sempre terá melhor desempenho que um algoritmo O(n3)? Justifique sua resposta. (4 pontos) _49775776.unknown _49824416.unknown _49829568.unknown