

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
Observe o pseudocódigo abaixo demonstrado, o qual se trata de uma ordenação por inserção.
INSERTION-SORT(A)
1 for j = 2 to A.comprimento
2 chave = A[j]
3 /
4 j=j-1
5 while i > Ge A[i] > chave
6 A[i + 1] = A[i]
7 i=i-1
8 A[i + 1] = chave
Existem determinadas convenções que são praticadas em pseudocódigos, como é o caso do uso representativo de laços, em for e while. Versando somente acerca do segundo dos laços citados, é possível afirmar que ele começa em que linha, e contém qual(is) outra(s), respectivamente?
5 ; 6.
5 ; 6 a 7.
5 ; 6 a 8.
1 ; 2 a 4.
5 ; 5.
Avalie o trecho de algoritmo abaixo, escrito em pseudocódigo (Portugol), cujo objetivo é a ordenação de um vetor em ordem crescente. Considere que "v" é um vetor de números inteiros com 5 posições que foi declarado e preenchido anteriormente, e que “t” é uma variável inteira que também foi preenchida anteriormente com o tamanho desse vetor.
para j de 1 até t faça
para i de 1 até t faça
se v[i] > v[i+1] então
aux ← v[i]
v[i] ← v[i+1]
v[i+1] ← aux
fimse
fimpara
fimpara
Caso o operador relacional ">" (maior) fosse trocado pelo operador ">=" (maior ou igual), mais quantas linhas do algoritmo teriam que ser alteradas para que o resultado esperado (ordenação do vetor em ordem crescente) continuasse a ser o mesmo?
Uma.
Duas.
Três.
Quatro.
Nenhuma.
O procedimento FIND-MAX-CROSSING-SUBARRAY, pela técnica de divisão e conquista, toma como entrada o arranjo A e os índices low, mid e high, e retorna uma tupla que contém os índices que demarcam um subarranjo máximo que cruza o ponto médio, juntamente com a soma dos valores em um subarranjo máximo.
Analise a estrutura a seguir.
FIND-MAX-CROSSING-SUBARRAY(A, low, mid, high)
1 left-sum = -∞
2 sum = 0
3 for i = mid downto low
4 ___ sum = sum + A[i]
5 ___ if sum > left-sum
6 ___ ___ left-sum = sum
7 ___ ___ max-left = i
8 right-sum = -∞
9 sum = 0
10 for j = mid+ 1 to high
11 ___ sum = sum + A[i]
12 ___ if sum > right-sum
13 ___ right-sum = sum
14 ___ max-right = j
15 return (max-left, max-right, left-sum + right-sum)
Acerca das funções descritas acima, assinale a alternativa CORRETA.
As linhas 1-7 acham um subarranjo maxImo da metade esquerda, A[low ._. mid]. Visto que esse subarranjo deve conter A[mid], o laço downto das linhas 3-7 inicia o índice i em mid e prossegue até low, de modo que todo subarranjo que ele considera é da forma A[i ._. low].
As linhas 1-2 inicializam as variáveis sum, que contêm a maior soma encontrada até então, e left-sum, que contém as somas das entradas em A[i . _. mid].
Sempre que encontrarmos, na linha 5, um subarranjo A[i ._ . mid] com uma soma de valores menor do que left-sum, atualizaremos left-sum para a soma desse subarranjo na linha 6, e na linha 7 atualizaremos a variável max-left para registrar esse índice i.
As linhas 8-14 funcionam de modo análogo para a metade direita, A[mid+1 ._. high]. Aqui, o laço for das linhas 10-14 inicia o índice j em mid+1 e prossegue até right-sum, de modo que todo subarranjo que ele considera é da forma A[mid + 1 ._. i].
A linha 15 retorna os índices max-left e max-right que demarcam um subarranjo máximo que cruza o ponto médio, juntamente com a soma left-sum+right-sum dos valores no subarranjo A[max left ._. max-right].
Considere o programa a seguir, apresentado na forma de uma pseudolinguagem (português estruturado).
Início
Inteiro: a1, a2, a3, i, S;
a1 ← 2;
a2 ← 3;
a3 ← 4;
S ← 0;
Para i de 1 até 3 faça
[
Se (a1 < a2)
Então
[
a2 ← a1;
a1 ← 2*a3;
a3 ← 3*a2;
]
]
S ← a1+a2-a3;
Imprima S;
Fim.
O valor da variável S impresso ao final da execução desse programa é igual a:
0
1
2
3
4
Analise o seguinte trecho de algoritmo:
para i de 1 ate 10 faca --------------para j de 1 ate 9 faca ---------------se (l[j] > 1 [j+1]) entao ------------------aux := l[j] ------------------l[j] := l[j+1] ------------------l[j+1] := aux |
Trata-se de uma solução:
Para a criação de uma B-Tree.
Para a criação de Árvores AVL.
De ordenação Bubble Sort.
De ordenação por Intercalação.
Para a criação de uma Árvore não AVL.
Sobre a utilização de estruturas de repetição em algoritmos, assinale a alternativa que apresenta estrutura que executa um conjunto de instruções pelo menos uma vez antes de verificar a validade da condição estabelecida.
repita...até_que
faça...enquanto
caso...seja...faça...senão...fim_caso
enquanto...faça...fim_enquanto
para...de...até...faça...fim_para
Neste algoritmo de ordenação a Ideia básica do algoritmo é:
- Compare o primeiro elemento com o segundo. Se estiverem desordenados, então efetue a troca de posição.
- Compare o segundo elemento com o terceiro e efetue a troca de posição, se necessário;
- Repita a operação anterior até que o penúltimo elemento seja comparado ao último. Ao final desta repetição, o elemento de maior valor estará em sua posição correta, a n-ésima posição do vetor;
- Continue a ordenação posicionando o segundo maior elemento, o terceiro,... até que todo o vetor esteja ordenado.
Este algoritmo é chamado de:
Selection Sort.
Fast Sort.
Bubble Sort.
Merge Sort.
Lazy Sort.
A estrutura de dados array deve ser utilizada somente para a manipulação de strings.
Certo
Errado
Seja o seguinte algoritmo, escrito via VisuAlg 3.0:
Algoritmo "ALG2"
Var
--vet : vetor [1..5] de inteiro
--aux, auxr, auxj : inteiro
Inicio
--vet[1] <- 10
--vet[2] <- 7
--vet[3] <- 23
--vet[4] <- 4
--vet[5] <- 12
para aux de 1 ate 5 faca
--para auxr de aux+1 ate 5 faca
----se vet[aux] > vet[auxr] entao
-------auxj <- vet[aux]
-------vet [aux] <- vet[auxr]
-------vet [auxr] <- auxj
----fimse
--fimpara
fimpara
Após rodar esse algoritmo, o valor final de vet[1] é:
4
7
10
23
Acerca do Teorema mestre, sejama21eb > 1 constantes, seja f(n) uma função e seja T(n) definida no domínio dos números inteiros não negativos pela recorrência
T(n) = aT(n/b) + f(n),
onde interpretamos que n/b significa n/b ou n/b. Então, T(n) tem os seguintes limites assintóticos:
I. Se f(n) = (nlogb a-) para alguma constante > 0, então T(n) =Θ(nlogb a) .
II. Se f(n) = Θ(nlogb a), então T(n) = Θ(nlogb a ig n).
III. Se f(n) = (Nlogb a+) para alguma constante > 0, e se af(n/b) ≤ cf(n) para alguma constante c < 1 e todos os n suficientemente grandes, então T(n) = Θ(f(n)).
Nesse sentido, assinale a alternativa CORRETA.
No caso I, se a função nlogb a a à for a maior, então a solução é T(n) = Θ (nlogb a)
No caso III, se a função f(n) for a maior, então a solução é T(n) = Θ(f(n/b)).
No caso II, se as duas funções tiverem o mesmo tamanho, multiplicamos por um fator logarítmico e a solução é T(n) =Θ(nlog b a ig n) = Θ (nlog f(n) ig n)
No caso I, f(n) não só tem de ser menor que nlogb a, mas deve ser polinomialmente maior. Isto é, f(n) deve ser assintoticamente menor que nlogb a por um fator n para alguma constante > 0.
No caso lII, f(n) não apenas deve ser maior que nlogb,a ela tem de ser polinomialmente maior e, além disso, satisfazer à condição de “regularidade” expressa por af(n/b) ≥ cf(n).
Em algoritmos, a ideia desse algoritmo de inserção é dividir os elementos em duas subestruturas, uma com os elementos já ordenados (à esquerda) e outra (à direita) com elementos ainda a serem ordenados. Ideia básica do algoritmo:
- Compare a chave (x) com os elementos à sua esquerda, deslocando para direita cada elemento maior do que a chave;
- Insira a chave na posição correta à sua esquerda, onde os elementos já estão ordenados;
- Repita os passos anteriores atualizando a chave para a próxima posição à direita até o fim do vetor.
O algoritmo da descrição é o:
Insertion Sort.
Selection Sort.
Bubble Sort.
Merge Sort.
Botton Sort.
Sobre os algoritmos para ordenação de dados, é correto afirmar que o
heapsort é considerado um algoritmo estável, fundamentado na estratégia de divisão e conquista.
mergesort é considerado um algoritmo instável, apresentando uma complexidade de O(n2) comparações no melhor caso.
bubblesort é considerado um algoritmo estável, apresentando uma complexidade de O(n2) comparações no pior caso.
insertion sort é considerado um algoritmo instável, apresentando uma complexidade de O(n) comparações no pior caso.
quicksort é considerado um algoritmo estável, fundamentado em uma estratégia de inserção de dados em lista.
Qual das seguintes afirmações sobre classes de problemas P e NP é verdadeira?
A checagem da solução de um problema da classe NP-completo é de complexidade maior que polinomial.
Todos os problemas da classe NP-completo podem ser convertidos entre si com complexidade polinomial.
Por definição, os problemas da classe P não são a classe NP.
Não é possível desenvolver um programa que resolve um problema da classe NP-completo.
Nenhuma das alternativas anteriores.
Na representação de algoritmos por meio de fluxogramas, o que representa o uso da figura abaixo?

Terminador de início ou fim.
Entrada de dados.
Desvio condicional.
Cálculo ou atribuição de valores.
Saída de dados.
Considere as seguintes definições relacionadas a algoritmos de ordenação e assinale a alternativa que identifica corretamente as três definições, considerando sua ordem.
1. O algoritmo consiste em percorrer o vetor de itens desordenados da esquerda para a direita, ordenando um item por vez. A cada passo, o item não ordenado é comparado aos itens à sua esquerda (os quais já estão ordenados) de modo a encontrar em qual posição ele deve ser colocado. Esses passos são repetidos para cada um dos itens não ordenados restantes. O algoritmo termina quando o último item do vetor é colocado na posição correta.
2. O algoritmo divide logicamente o vetor em duas partições: uma partição contendo itens ordenados, que é construída da esquerda para a direita na frente (esquerda) do vetor, e uma partição contendo itens restantes não ordenados que ocupam o resto do vetor. Inicialmente, a partição ordenada está vazia e a partição não ordenada é o próprio vetor de entrada. Em cada passo, o algoritmo encontra o menor item na partição não ordenada, trocando-o com o item não ordenado mais à esquerda da partição (colocando-o, portanto, em ordem). Então, o limite lógico entre as partições ordenada e não ordenada é incrementado em uma posição e os passos anteriores são repetidos. O algoritmo termina quando resta apenas um item a ser ordenado.
3. O algoritmo divide o problema em partes menores, resolvendo cada parte separadamente e juntando os resultados posteriormente. O vetor é dividido em duas partes iguais, sendo cada uma delas dividida em duas partes, e assim por diante, até restarem partes com um ou dois itens, cuja ordenação é trivial. Para juntar pares de partes ordenadas, os dois primeiros itens de cada parte são separados e o menor deles é selecionado e posicionado como primeiro elemento. Em seguida, os menores entre os restantes são comparados e posicionados e assim se prossegue até que todos os elementos tenham sido juntados. O procedimento é repetido até que todas as partes tenham sido tratadas.
Insertion Sort (ordenação por inserção) – Selection Sort (ordenação por seleção) – Jungle Sort (ordenação selvagem)
Selection Sort (ordenação por seleção) – Insertion Sort (ordenação por inserção) – Quick Sort
Selection Sort (ordenação por seleção) – Insertion Sort (ordenação por inserção) – Bubble Sort
Insertion Sort (ordenação por inserção) – Selection Sort (ordenação por seleção) – Merge Sort
Merge Sort – Shell Sort – Bubble Sort
Abaixo é apresentado um trecho de um algoritmo escrito em pseudocódigo (Portugol).
x ← 1
y ← 2
z ← 3
se não(x >= y) então
x ← y + 1
se x <> z então
x ← z + 1
y ← z – 1
senão
x ← z – 1
y ← z + 1
fimse
senão
y ← x – 1
fimse
Ao final da execução do código acima, quais serão, respectivamente, os valores das variáveis "x" e "y"?
1 e 0.
1 e 2.
2 e 1.
2 e 4.
4 e 2.
Qual é o pacote da linguagem R que contém uma implementação de redes neurais feed-forward (entre outros modelos) que permite realizar ajustes avançados nos modelos?
ggplot2
RODBC
dplyr
CARET
h2o
Considere o seguinte diagrama de blocos que representa um tipo de comando de repetição comumente utilizado na lógica de um programa. Assuma que, dentro do losango, exista uma Condição.

Trata-se do comando do tipo
Enquanto Condição ... Faça
Até que Condição ... Faça
Para ... Até ... Faça
Faça ... Enquanto Condição
Faça ... Até que Condição
Em que consiste, basicamente, a elaboração de pseudocódigo?
É uma forma de escrever código-fonte que é compilado antes de ser executado.
É uma forma de escrever algoritmos utilizando o Portugol (apenas), de forma a facilitar a compreensão da lógica do programa.
É um passo obrigatório na análise de um problema para que possa ser resolvido por meio de um programa.
É uma técnica para escrever código-fonte que é executado diretamente, sem a necessidade de compilação.
É uma forma de descrever a lógica de um algoritmo, independentemente da linguagem de programação utilizada.
Um conjunto de métodos numéricos utilizados para resolver equações diferenciais ordinárias, por meio da estimativa do valor da solução em ponto futuro com base na derivada da função no ponto atual, é conhecido como:
Fatoração LU.
Métodos das potências.
Métodos de Runge-Kutta.
Diferenças divididas de Newton.
Cálculo de autovalores e autovetores.