As motivações para se ordenar um arranjo de dados são variadas. Por exemplo, imagine que a agenda de seu celular não apresenta função de busca por contatos e, para piorar, seus dados estão completamente desordenados. Não seria muito mais fácil organizar seus contatos em ordem alfabética para que nós, humanos, possamos utilizar a agenda de maneira mais adequada? Fonte: OLIVEIRA, P. M. de; PEREIRA, R. de L. Estruturas de Dados II. Maringá: UniCesumar, 2019. O algoritmo Insertionsort realiza, justamente, esse tipo de tarefa: ordenação. Observe uma de suas implementações a seguir: Linha Código 01 void insertionSort(int vec[], int tam) 02 { 03 int i, j, tmp; 04 for(i = 1; i < tam; i++){ 05 j = i; 06 while((vec[j] < vec[j - 1]) && (j!=0)){ 07 tmp = vec[j]; 08 vec[j] = vec[j-1]; 09 vec[j-1] = tmp; 10 j--; 11 } 12 } 13 } Fonte: adaptado de: OLIVEIRA, P. M. de; PEREIRA, R. de L. Estruturas de Dados II. Maringá: UniCesumar, 2019. Com base no trecho de código anterior, analise as afirmativas a seguir: I. Pode-se dizer que esse algoritmo foi programado para ordenar o arranjo “vec[]” em ordem não-decrescente (crescente). II. Na melhor das hipóteses, esse algoritmo realizará um número de iterações proporcional à variável “tam”. III. Há um erro semântico nesse algoritmo, já que, na linha de código 10, o correto seria termos a expressão “j++”. É correto o que se afirma em: Alternativas Alternativa 1: I, apenas. Alternativa 2: I e II, apenas. Alternativa 3: I e III, apenas. Alternativa 4: II e III, apenas. Alternativa 5: I, II e III. ATENÇÃO: Não responda se você não souber, NÃO COPIE DO CHAT GPT!
Responda

Helpful Social

Copyright © 2024 ELIBRARY.TIPS - All rights reserved.