Questões de Concurso
Comentadas sobre algoritmos em algoritmos e estrutura de dados
Foram encontradas 1.518 questões
Num programa, encontrou-se a expressão lógica a seguir:
(NOT B=5 AND NOT C=3) OR (NOT A=0 AND B=5) OR (A=0 AND B=5 AND C=3) OR (A=0 AND B=5 AND NOT C=3)
Assinale a alternativa que apresenta a expressão mais reduzida que se pode obter, a fim de simplificar a lógica descrita acima.
Um programa tem a seguinte expressão lógica:
(NOT A=9 AND C=4) OR (NOT A=9 AND B<7) OR (A=9 AND C=4).
Qual das alternativas abaixo apresenta, de forma simplificada, a mesma lógica da expressão original acima descrita?
Sobre algoritmos e seus tipos, para cada afirmativa abaixo, informe se é verdadeira (V) ou falsa (F). Em seguida, marque a opção que corresponde à sequência CORRETA.
( ) A descrição narrativa é um tipo de algoritmo que utiliza linguagem natural para especificar os passos da realização das tarefas.
( ) Pseudocódigo, portunhol e fluxograma são tipos clássicos de algoritmos.
( ) O diagrama de Chapin apresenta a solução de um problema por meio de um diagrama de quadros, com uma visão hierárquica e estruturada.
( ) Um algoritmo é uma sequência lógica e finita de instruções, que devem ser seguidas para a resolução de um problema ou execução de uma tarefa.
A respeito de análise e desenvolvimento de sistemas, julgue o item subsequente.
Em um fluxograma, as caixas de decisão são como
“caixas pretas”, uma vez que não se tem clareza da ação
que será executada.
A respeito de análise e desenvolvimento de sistemas, julgue o item subsequente.
Os algoritmos são sequências finitas de instruções que, quando corretamente executadas, levam à solução de um problema.
Avalie as afirmações abaixo:
I. A classe P e a classe NP são disjuntas.
II. A classe P é um subconjunto da classe co-NP.
III. Problemas coNP-completos admitem um certificado tal que uma resposta negativa pode ser verificada em tempo polinomial.
IV. A interseção das classes NP e co-NP é vazia.
Está correto apenas o que se afirma em
A teoria de algoritmos de aproximação, às vezes chamados de algoritmos aproximativos, é extremamente útil para tratar problemas NP-difíceis.
Sobre algoritmos de aproximação, é correto afirmar que
Uma transformação polinomial é uma ferramenta fundamental na demonstração de que determinado problema é NP-difícil.
Avalie as afirmações sobre propriedades que transformações polinomiais devem satisfazer.
I. Para toda transformação polinomial, deve existir uma Máquina de Turing determinística que a computa em tempo polinomial.
II. Se uma transformação polinomial transforma um elemento de linguagem A em um elemento de linguagem B, então A é um subconjunto não necessariamente próprio de B.
III. Se uma transformação polinomial transforma um elemento de uma linguagem A em um elemento de linguagem B, e A pertence a NP, então B pertence a NP.
IV. A quantidade de espaço utilizada pela transformação pode ser limitada por uma constante.
Está correto apenas o que se afirma em
Considere a equação de recorrência abaixo.
T(n) = 0 para n = 1.
T(n) = 2T(n/2) + n – 1 para n > 1.
Após a resolução, a solução encontrada é
Utilize o método mestre para resolver recorrências das equações abaixo.
T1 (n) = 9T1 (n/3) + n
T2 (n) = T2 (2n/3) + 1
As ordens de complexidade correspondentes são
Na tabela a seguir, considerando os métodos de ordenação, que visam a colocar uma lista em ordem para facilitar a busca de informações nela contidas, associe os métodos à sua respectiva descrição.
Método de Ordenação
(1) Bubble Sort
(2) Insert Sort
(3) Select Sort
(4) Shellsort
(5) Mergesort
(6) Quicksort
(7) Heapsort
Descrição
( ) Neste método, a lista é subdividida em h-listas, as quais são ordenadas com um método de ordenação qualquer. Esse procedimento é repetido para valores decrescentes de h, sendo que o último valor de h tem que ser 1.
( ) Neste método, são usados, inicialmente, os elementos da lista que são inseridos em um heap binário crescente. Em seguida, são feitas sucessivas remoções do menor elemento do heap, colocando os elementos removidos do heap de volta na lista.
( ) Neste método, a lista é dividida em duas metades. Essas metades são ordenadas recursivamente e depois são intercaladas. Para tanto, faz-se uso das variáveis i e j para percorrer a metade esquerda e a metade direita, respectivamente. Em cada iteração, compara-se o elemento na posição i com o elemento na posição j. O menor deles é copiado para um vetor auxiliar. Esse procedimento é repetido até que uma das duas metades tenha sido totalmente copiada para o vetor auxiliar.
( ) Neste método, os elementos da lista são movidos para as posições adequadas de forma contínua. Se um elemento está inicialmente numa posição i e, para que a lista fique ordenada, ele deve ocupar a posição j, então ele terá que passar por todas as posições entre i e j. Em cada iteração do método, percorre-se a lista a partir de seu início, comparando cada elemento com seu sucessor, trocando-os de posição se houver necessidade.
( ) Neste método, a lista é dividida em parte esquerda e parte direita, sendo que os elementos da parte esquerda são todos menores do que os elementos da parte direita. Em seguida, as duas partes são ordenadas recursivamente.
( ) Neste método, considera-se que a lista está dividida em parte esquerda, já ordenada, e parte direita, em possível desordem. Além disso, os elementos da parte esquerda são todos menores ou iguais aos elementos da parte direita. Cada iteração consiste em escolher o menor elemento da parte direita (pivô) e trocá-lo com o primeiro elemento da parte direita. Com isso, a parte esquerda aumenta, pois passa a incluir o pivô, e a parte direita diminui.
( ) Neste método, considera-se que a lista está dividida em parte esquerda, já ordenada, e parte direita, em possível desordem. Inicialmente, a parte esquerda contém apenas o primeiro elemento da lista. Cada iteração consiste em colocar o primeiro elemento da parte direita (pivô) na posição adequada da parte esquerda, de modo que a parte esquerda continue ordenada.
Tabela: métodos de ordenação
Fonte: Próprio autor
A sequência correta desta associação é