Baixe o app para aproveitar ainda mais
Prévia do material em texto
Questão 1/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 – 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 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 – 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 O segundo assunto de nossa disciplina diz respeito a algoritmos de ordenação de dados. Acerca deste assunto, assinale a alternativa INCORRETA: Nota: 20.0 A Algoritmos de ordenação são empregados com o objetivo de ordenar conjuntos de dados a partir de uma determinada métrica, como por exemplo, ordenar nomes de pessoas em ordem alfabética crescente. B Existem os mais diversos algoritmos de ordenação, sendo que cada um deles apresentará uma complexidade distinta em tempo de execução e de uso de memória e, portanto, devem ser minuciosamente escolhidos de acordo com a aplicação. C A permuta de grandes quantidades de dados para ordenação tende a ser custoso computacionalmente. O uso de variáveis ponteiros servem para auxiliar e otimizar este processo ordenando somente os endereços ao invés de todo o conjunto de dados. D Um algoritmo de ordenação é um método que descreve como é possível colocar, em uma ordem específica, um conjunto de dados qualquer. E A lógica algorítmica de cada método de ordenação difere para cada tipo de estrutura de dados que se deseja manipular. Você acertou! AULA 2 – TEMA 1. A estrutura de dados não muda a lógica de funcionamento do algoritmo de ordenação, só muda a estrutura a ser manipulada. Questão 4/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 – 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 5/5 - Estrutura de Dados Chamamos de análise assintótica de algoritmos quando encontramos a complexidade de um algoritmo de maneira aproximada através de uma curva de tendência. Este tipo de análise e é a mais adotada para compararmos desempenho de algoritmos. Acerca da análise assintótica de um algoritmo, assinale a alternativa INCORRETA: Nota: 20.0 A Um algoritmo com três laços de repetição não encadeados contém uma complexidade assintótica, para o pior caso, O(n). B Na análise assintótica, fazemos o conjunto de dados de entrada da função custo tender ao infinito, mantendo na equação somente o termo de maior grau, ou seja, aquele que mais cresce na equação. C Um algoritmo com três laços de repetição aninhados contém uma complexidade assintótica, para o pior caso, O(n³). D A complexidade assintótica para o pior caso, também conhecida como BigO, representa o pior cenário para um algoritmo, ou seja, quando mais instruções precisam ser executadas, levando mais tempo para finalizar a execução. E A complexidade assintótica para o pior caso de um algoritmo contendo dois laços de repetição aninhados, sendo que o segundo laço só será executado caso uma condicional simples seja verdadeira, será O(n). Você acertou! AULA 1 – TEMA 3. O pior caso (BigO) nos diz que todas as linhas devem ser executadas, ou seja, a condicional será sempre verdadeira, e ambos laços de repetição serão sempre executados, sendo assim, complexidade O(n²).
Compartilhar