1. Faça a análise por operações primitivas e a análise assintótica (notação “O”) dos seguintes
fragmentos de programas
2. Sejam os seguintes fragmentos de programas nos quais i e j são variáveis inteiras, B é uma
matriz de inteiros e n, p, m são variáveis inteiras positivas digitadas pelo usuário, sendo p
múltiplo de 2 :
fragmento 1: fragmento 2:
1
Lista I Introdução à Computação II, 5954006
3. Sejam os seguintes fragmentos de programas nos quais i, j, x, n são variáveis inteiras, sendo
que n é uma variável positiva digitada pelo usuário:
fragmento 1: fragmento 2:
4. Faça a análise assintótica (notação “O”) de um procedimento que multiplica duas matrizes
quadradas An,n e Bn,n? E para duas matrizes An,m e Bm,r?
Resposta: Admitindo-se o algoritmo convencional de multiplicação de matrizes, a
resposta deve ser próxima de O(n3) para matrizes quadradas. Para matrizes não
quadradas, O(nrm).
5. Dadas n variáveis booleanas x1, x2, ..., xn deseja-se imprimir todas as possíveis combinações
de valores lógicos que elas podem assumir. Por exemplo, se n = 2, haverá quatro
possibilidades: verdadeiro/verdadeiro, verdadeiro/falso, falso/verdadeiro, falso/falso.
Escreva um procedimento para executar essa tarefa. Qual a ordem de grandeza da
complexidade na notação “O”?
Resposta: Em geral, O(2n).
n n! n 1 n 1
m m!( n m)! m m 1