Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Prova1 ED

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 5

J9.

8/20
Universidade Federal de Minas Gerais DCC205- Estruturas de Dados
Instituto de Ciências Exatas
1° Semestre de 2022
Departamento de Ciência da Computação
Profs Gisele e Wagner

Nome: Nenadoma laua


Matrícula: 20110j219%
Prova 1 (20 pontos)

Questão 1(4 pontos) Para cada uma das afirmativas abaixo, diga se ela é verdadeira (V) ou falsa (F). Em todas
as
afirmativas, justifique a sua resposta. Respostas sem justificativa não serão consideradas.
Considere um programa P que faz uma série de operações de custo constante, chama uma função FI com
complexidade dada por f(n) e depois chama uma função F2 com complexidade dada por g(n), onde g(n) =1000.f(n).
Pode-se afirmar que o programa Pé O(f{n).

lapegann Py Tunas ocar d bugo som odun de coophnedod dspuh,ude sas


O0, OF) O(10,flon), Cene 10
Conelydeks: 0(1, o(Flnl). Ceno a nona d dson ordd i 1qud no mápmo dJnn, Jung, g
P:01)-0(f(al)-> P-O(Fla)

E) Considere um programa cuja função de complexidade é fn) 3 log(n). É coreto afirmar que esse programa é
Olog n), mas não é O(n).

a nao di compbondods de pnoqwva í fd: 3.Jegloi,anua omdm deuorpbyudadi s O(loglal),. Com

o(R, pon n lanba dernna lagnl, nduomd nãe audt


s un Lond prm eatuue nnds Oln)

(F) Um programa recursivo com equação de recorência T(n) = n+ T(n-1), sendo T(0) = 1, tem ordem de complexidade
menor que a de um programa que implementa dois loops aninhados com n passos cada.

Cyandundo a sguaáo dunuarinao,lum


T(n): T(1), n
T(n-1)-T (n-2)+n-1
T(4-1): T(-3)n-2 Tlul: 1..1: ala. 1raTol:g-1-Ole)
T(1)- To)1 Cowedon loop mukada,sow n pandrkada lembán Dun aa ,a alwimabin
T(O0)-1
fana, pon one Jin amina ndnd oplaudds
M Sejam duas funções de complexidade g(n) = Sn? + 3n + 4 e f{n) = 95n?+ n+ 15. Ë correto afirmar que um programa Pl
cuja complexidade é g(n) é mais rápido que um programa P2, com complexidade f(n).

|1lOme qt abes en hunda poruom ondun di conpldad1 0n), 1 muantm auadnaluml, n uao

quu fla) para quahan nliyph masom qw 0. nlao sm poopma P1 con


n
uoná munen

haday seplundads glvl i main nápudo qaI k tooqsne P2 cm n hud Tcondad tll.

Questão 2 (4 pontos) Dado o código do programa abaixo, pergunta-se:

float FazAlgo (int a, int b) (


if (b == 0)

return 1;
else
return a * FazAlgo (a, b-1);

a. O que ele faz?


d pranana FzAlgo cnpuda a" (ai swrmds a "b"), ji ndeue a mhegb nu n a musa

b.Qualsua ordem decomplexidade? Para isso, determineeresova aequação de recorrênciacorrespondente.


Coie nánto du banaden nuwon í dlumanedg sm kuncão di b, Too

(M-dT(b-1), >o nde C uma konmlank qi nymrna e aunlo da opnacão

(c, bso relurn; lo dh return eonwna mulaheoco


opandndo m a lquao, lUngyi
Tul: T(-1)4
T-1)-T-3)»d
T(6.0):T(-1)rd To)=2J)
:
i:
rC: 6d ,c .

dogo a uguago dsnuierincoua t

T1) T(O)% 4 0ln).


nua rdn do ronmpondaiÜtB), ou m hundo do w
:
T(0:
Qual seria a complexidade de uma implementação não recursiva dessa mesma função? Qual das duas implementações
vocêsescolheria? Justifique asua resposta.
lop puntcpal d uma upleanudajt nóenuewina prloun nbn forl;>1j a mplawualaesa,nudeo
:Qa
8wanda a-d.o e di viluun, anp di tanguad nne
fal. -1 ua mdm ohio Uin, m e
sd plimslacão neuwin. nku onan duol nplunvdoeos, m antinie od nan ja mla d
PMUwROvO i munlo ai o
rownine, q muha a ada avn xhamado ncmne
7Questão 3 (6 pontos) Complete o código abaixo que, dada uma lista simplesmente encadeada com célula cabeça - onde
cada célula, além do ponteiro para a próxima célula, guarda um campo Tipoltem item com uma chave inteirac-move a
célula que contém a chave c para a última posição da lista, caso essa chave
seja encontrada. O número de linhas indicado
abaixo representa EXATAMENTE a quantidade de linhas necessárias para
completar o código.
void MoveParaTras (TLista *lista, int c) {
Apontador P, q
1/ localização da primeira célula útil
p lista->primeiro->prox;
//localização da célula anterior a p
lista->primeiro;

/7 busca a célula que contém a chave c

(1) while ((p != NULL) && (p-> ilemO != c)) {

(2)
pray_
(3) P
P2pra
7 s e a chave for encontrada

(4) if (p = NVLL ppznxl=NULL


(5) q-prox 2 p 0 x _

(6) lista->ultimo->prox

(7) P->prox = NULL

(8) lista->ultimo
P

Fórmulas úteis:

1--*1
k= nk i = a+1)
2 1-r
i=1 i=1 i=0
Questão 4: (6 pontos) Considere o programa abaixo. Qual é a função de complexidade do número de atribuições de
valores ao vetor vno melhor caso e no pior caso? Explique como você chegou a esses resultados.

void Complexidade (int n, int **v)


int i, j
*y = (int *) malloc(n*sizeof (int) );
for (i = 0; i < n; itt)
h (*v)i ) rand() 50+ 1; // inicializa v[ij com um valor aleatório

if ((*v) toj > 25)


j = n/2;

while ( 0)
lonu. *V) i]=-1;
j - j / 2;

else
for (i= 0; i n ; i++)
for (j = i; j < n; j++)

(*v) [ i ] = Ji

1 -(*v) [0] =100;

int main () {
int n, *v = NULL;

scanf ("%d", &n); // Lê o valor de n


Complexidade (n, &v) ;
printf ("sd\n", v [0]) ; /imprime v[0];
return 0;

lanken do cedvgp mquu l ahususae, do ardau, ao nvlon VLatao nublnkades acivo, Japt q
a urrao Cowplexidale i akarada, la inucsalio oda uea des n jouó, do arler V ahawd

|for, nphands mldo m audo n. bn nioudo, lungn um il-else, ande qum dunsn bloco
0 oule a pien cand. lo il, luor lon vhule (i >0), nnds o j tiauahigado rom a
I a Kade loop, vk duunanle sulods dl nteAaler, pu yp, Lou loop nypl kaga) nyo. dá ne boco

else, neh don tor onunJodn, unde e man albno nando h matn, 16 for mlbno não luo
iusa hrs d ee, nunde nu a cada lonp, o unado ji maabyedo aomo Nmlen dei, doamda
nfae a a
nun a cade loep, Vara mlndun mulkn, homine, sove imla n-); qendo i-0, lnn
pu j na d 0a Y, maidando s abkuego aV Sngej qaonde i=1, 7 mva du 1aY mieulde 1naj

| er, ba, no illna alukueioo V, nurde snauladany yrn. loge, no mulkor cane lnan e Hoco
doi, som ugo dt canplendadsfln): ne lolni, a ne pien acana haon obloco da else, coupunge
d conplnudod fiol: nenlag,1. n-g-1> fla) g a.f1

Você também pode gostar