Questões de Concurso Comentadas sobre algoritmos e estrutura de dados
Foram encontradas 2.519 questões
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?
Assinale a alternativa que preenche corretamente a lacuna do trecho acima.
A*(B+C)/D-E
A expressão correta na referida notação é:
I. Qualquer operação de inserção de uma nova chave implica uma divisão (split) de algum nó. II. Qualquer operação de remoção de uma chave implica uma divisão (split) de algum nó. III. Qualquer operação de remoção de uma chave implica uma concatenação de dois ou mais nós em um.
Está correto o que se afirma em:
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.