apols 1 a 5 estrutura de dados
16 pág.

apols 1 a 5 estrutura de dados


DisciplinaEstruturas de Dados I581 materiais2.532 seguidores
Pré-visualização4 páginas
Questão 1/5 - Estrutura de Dados 
No primeiro assunto de nossa disciplina investigamos o que são estruturas de dados e como podemos classificá-las em tipos. 
Acerca deste assunto, assinale a alternativa INCORRETA: 
Nota: 20.0 
 
A Um dado que pode ser decomposto em partes mais simples, é considerado um dado estruturado e, portanto, uma estrutura de dados. 
 
B Os tipos de dados manipulados por um algoritmo podem ser classificados em duas categorias distintas: os atômicos, que são dados indivisíveis, e os 
dados compostos, que podem ser divisíveis em mais partes menores. 
 
C Podemos classificar uma estrutura de dados como sendo do tipo homogênea (como registros) ou do tipo heterogênea (como vetores e matrizes). 
Você acertou! 
AULA 1 \u2013 TEMA 1. Podemos classificar uma estrutura de dados como sendo do tipo heterogênea (como registros) ou do tipo homogênea (como 
vetores e matrizes). 
 
D Uma estrutura homogênea é aquela cujo tipo dos dados nela armazenados são de um único tipo, como inteiro, real, caractere ou lógico 
 
E Uma estrutura contendo dados do tipo caractere e do tipo real pode ser considerada uma estrutura de dados heterogênea. 
 
Questão 2/5 - Estrutura de Dados 
O algoritmo de ordenação por intercalação, também conhecido como merge sort, é um dos algoritmos estudados na AULA 2. 
Acerca deste algoritmo, assinale a alternativa CORRETA. 
Nota: 20.0 
 
A A complexidade do merge sort é O(logn), pois o algoritmo trabalha com o princípio de dividir para conquistar. 
O(n.logn), pois temos duas funções. 
 
B O processo do merge sort consiste em dividir uma estrutura de dados de tamanho n (um vetor por exemplo) em 4 partes e ordenar estar partes, 
agregando-as posteriormente. 
O processo do merge sort consiste em dividir uma estrutura de dados de tamanho n (um vetor por exemplo) em n partes de tamanho unitário. 
 
C Ao dividir o conjunto de dado em duas partes menores, o merge sort sempre calcula a posição central da ruptura, que é dada pela média entre os 
valores posição inicial com a posição final, arredondando para cima. 
É feito um truncamento somente da parte inteira. 
 
D A intercalação é realizada utilizando um vetor auxiliar para ir armazenando os dados que vão sendo ordenados naquele momento. 
Você acertou! 
AULA 2 \u2013 TEMA 3. Figura 10. 
 
E A função merge sort pode ser implementada de forma recursiva, ou seja, realizando chamadas de si mesma até que o conjunto de dados seja 
indivisível. A ordenação só ocorre quando as partes menores forem agregadas novamente. 
A ordenação ocorre nas partes menores e indivisíveis. 
 
Questão 3/5 - Estrutura de Dados 
A recursividade é um recurso de programação bastante empregado, e consiste no ato de uma função em um código realizar 
chamadas de si mesmo, abrindo diferentes instâncias de uma mesma função na memória do programa. 
Acerca de recursividade e algoritmos recursivos, assinale a alternativa INCORRETA: 
Nota: 20.0 
 
A Diversos problemas computacionais que poderiam ser resolvidos utilizando algoritmos iterativos, ou seja, laços de repetição, podem também ser 
resolvidos usando recursividade. 
 
B Um algoritmo recursivo terá uma complexidade logarítmica, apresentando um desempenho inferior em tempo de execução superior a um algoritmo 
construído de forma iterativa. 
Você acertou! 
AULA 1 \u2013 TEMA 4. O desempenho em tempo de execução é superior. 
 
C Uma possível desvantagem de um algoritmo recursivo é o seu uso de memória mais elevado, uma vez que diversas instâncias de uma mesma função 
precisam ser alocadas na memória. 
 
D Um algoritmo que executa uma função denominada de soma, e que realiza a chamada de uma função denominada compara, não pode ser 
considerado um algoritmo recursivo, uma vez que não realizada chamadas de si mesma. 
 
E Um algoritmo recursivo comumente serve para resolver problemas do tipo \u201cdividir para conquistar\u201d, onde dividimos um problema em partes menores e 
mais fáceis de solucionar, para posteriormente agregar as pequenas soluções em uma maior. 
 
Questão 4/5 - Estrutura de Dados 
Uma implementação do algoritmo de ordenação do tipo bubble sort pode ser visto abaixo. As partes que envolvem impressão de 
dados na tela e leitura de dados foram omitidas para um melhor entendimento do que é necessário na questão. 
 
X[TAMANHOVETOR], i, j, aux: inteiro 
para i de 1 até TAMANHOVETOR faça 
 para j de 0 até (TAMANHOVETOR - 2) faça 
 se (X[j] > X[j + 1]) então 
 aux <- X[j] 
 X[j] <- X[j + 1] 
 X[j + 1] <- aux 
 fimse 
 fimpara 
fimpara 
Acerca deste algoritmo, assinale a alternativa CORRETA: 
 
Nota: 20.0 
 
A O algoritmo apresentado no exercício realizado a ordenação de dados numéricos, inteiros, em ordem decrescente. 
Ordenação é crescente. 
 
B As linhas de código que correspondem a troca dos valores usando uma variável auxiliar poderiam ser também escritas da seguinte maneira: 
aux <- X[j+1] 
X[j+1] <- X[j] 
X[j] <- aux 
Você acertou! 
AULA 2 \u2013 TEMA 2. CORRETO. 
 
C Se precisarmos ordenar dados não numéricos, como caracteres, precisaremos repensar em toda a lógica do bubble sort, não sendo possível adaptar 
o código facilmente. 
Basta adaptarmos a linha da condicional para funcionar com outro tipo de dado. 
 
D Não é possível implementar o bubble sort com laços de repetição do tipo enquanto. 
É possível implementar com qualquer tipo de laço, para, enquanto ou repita. 
 
E A complexidade deste algoritmo, para o pior caso, é O(logn). 
Complexidade O(n²). 
 
Questão 5/5 - Estrutura de Dados 
O algoritmo de ordenação rápida, também conhecido como quick sort, é um dos algoritmos estudados na AULA 2. 
Acerca deste algoritmo, assinale a alternativa CORRETA. 
Nota: 20.0 
 
A A complexidade do quick sort é O(n²). Isso significa que ele sempre terá a mesma eficiência de um bubble sort. 
Somente o pior caso do bubble e do quick são iguais. Se considerarmos cenários melhores o quick sort se sai bem melhor que o bubble sort. Veja o 
experimento feito na AULA PRÁTICA 1 para mais detalhes. 
 
B O quick sort trabalha com o conceito de pivô, que é o elemento usado nas comparações, comparando sempre o seu valor com todos os valores do 
lado direito do pivô, enquanto que o lado esquerdo permanece já ordenado. 
Ambos os lados são comparados, esquerdo e direito. 
 
C O quick sort trabalha com o conceito de pivô, que é o elemento usado nas comparações, comparando sempre o seu valor com todos os valores do 
lado esquerdo do pivô, enquanto que o lado direito permanece já ordenado. 
Ambos os lados são comparados, esquerdo e direito. 
 
D O quick sort trabalha com uma troca de valores utilizando uma variável auxiliar, da mesma maneira feita no bubble sort. 
Você acertou! 
AULA 2 \u2013 TEMA 4 \u2013 CORRETO. 
 
E O quick sort só pode ser executado para um tamanho de conjunto de dados máximo igual a 1000, pois mais do que isso o uso de memória pelo 
algoritmo é muito grande. 
O limite máximo dependerá da memória disponível, não sendo limitado ao valor de 1000. 
 
 
Apol 2... 
 
 
 
Questão 1/5 - Estrutura de Dados 
No terceiro assunto de nossa disciplina estudamos estruturas de dados que se comportam como uma PILHA. 
Acerca de PILHA, assinale a alternativa INCORRETA: 
Nota: 20.0 
 
A Em uma pilha construída utilizando listas encadeadas. Desempilhar nela significa remover o primeiro elemento desta pilha. 
Sim. Remoção no topo. 
 
B Uma pilha pode só pode ser construída empregando uma estrutura de dados que trabalhe de maneira não sequencial. 
Você acertou! 
Podemos construir com vetores (sequencial) ou listas (não sequencial). 
 
C Uma pilha trabalha com inserção e remoção no topo da pilha. Sendo impossível manipular qualquer outra posição da pilha. 
Sim. Estrutura do tipo FILO.