1 / 14

Exercícios Análise de algoritmos & Ordenação

Exercícios Análise de algoritmos & Ordenação. Eduardo Laber. Exercícios. Escreva o pseudo-código da operacão de remover o elemento minímo de um heap armazenado em um vetor A[1..n] Como podemos remover o i-ésimo elemento de um heap armazenado em um vetor A[1..n] em O(log n). Exercício.

Download Presentation

Exercícios Análise de algoritmos & Ordenação

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ExercíciosAnálise de algoritmos & Ordenação Eduardo Laber

  2. Exercícios • Escreva o pseudo-código da operacão de remover o elemento minímo de um heap armazenado em um vetor A[1..n] • Como podemos remover o i-ésimo elemento de um heap armazenado em um vetor A[1..n] em O(log n)

  3. Exercício • Projete um algoritmo para fazer um merge de k listas ordenadas que execute em O(n log k), aonde n é o total de elementos nas k listas

  4. Exercício • Mostre como ordenar n inteiros no intervalo [1,n2] em tempo linear O(n)

  5. Exercício • A) Mostre que para fazer o merge de duas listas com n elementos é necesário realizar pelo menos 2n-1 comparações no pior caso. • B) Mostre que para fazer o merge de duas listas, uma com n elementos e outra com m elementos, é necesário realizar pelo menos comparações no pior caso.

  6. Exercício • Perdido em uma terra muito distante, você se encontra em frente a um muro de comprimento infinito para os dois lados (esquerda e direita). Em meio a uma escuridão total, você carrega um lampião que lhe possibilita ver apenas a porção do muro que se encontra exatamente à sua frente (o campo de visão que o lampião lhe proporciona equivale exatamente ao tamanho de um passo seu). Existe uma porta no muro que você deseja atravessar. Supondo que a mesma esteja a n passos de sua posição inicial (não se sabe se à direita ou à esquerda), elabore um algoritmo para caminhar ao longo do muro que encontre a porta em O(n) passos. Considere que n é um valor desconhecido (informação pertencente à instância). Considere que a ação composta por dar um passo e verificar a posição do muro correspondente custa O(1).

  7. Exercício Analise a complexidade do algoritmo abaixo Leia(n); x  0 Para i  1 até n faça Para j  i+1 até n faça Para k  1 até j-i faça x x + 1

  8. Exercício • Projete o algoritmo mais eficiente que você conseguir para encontrar a mediana de um vetor de n elementos. Análise sua complexidade.

  9. Exercício Dizemos que um vetor P[1..m] ocorre em um vetor T[1..n] se  P[1..m]  =  T[s+1..s+m]  para algum s. O valor de um tal s é um deslocamento válido. Projete um algoritmo para encontrar todos os deslocamentos válidos de um vetor e analise sua complexidade.

  10. Exercício Seja A[1..n] um vetor que pode conter números positivos e negativos. Projete um algoritmo com complexidade O(n3) determinar os índices i e j, com i<=j, tal que A[i] + ...+A[j] é máximo. Tente reduzir a complexidade para O(n2), depois para O(n log n) e então para O(n)

  11. Exercício Resolvas as equações abaixo encontrando uma função f(n) tal que T(n) = (f(n)) • T(n)=2.T(n/2) + n2 para n>1; T(1)=1 • T(n) = 2.T(n/2) + n, para n>1; T(1)=1 • T(n)=T(n/2) + 1, para n>1; T(1)=1 • T(n)=T(n/2) + n,para n>1; T(1)=1

  12. Exercício Seja uma matriz quadrada A com n2 números inteiros que satisfaz as segintes propriedades • A[i,j] <= A[i+1,j] para 1<=i<=n-1 e 1<=j<=n • A[i,j]<=A[i,j+1], para 1<=i<=n e 1<=j<=n-1 • Dado um elemento x, descreva um procedimento eficiente para determinar se x pertence a A ou não. Analise a complexidade do algoritmo proposto. • Mostre que este problema tem compleidade Ω(n)

  13. Exercício Seja A={a(1) < .... < a(n)} uma lista de números reais. A proximidade entre a(i) e a(j) é definida como |a(i)-a(j)|. a) Dados os inteiros j e k, encontre os k elementos de A mais próximos de A[j] em O(k).

  14. Exercício Seja A[1..n] um vetor com n números positivos e seja S[i]=A[1]+...+A[i]. • Encontre o índice i que minimiza Minimiza | S[i] – (A[i+1] + ... +A[n]) |

More Related