SóProvas


ID
2768242
Banca
FAURGS
Órgão
TJ-RS
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Instrução: A questão refere-se ao algoritmo abaixo, escrito em uma pseudolinguagem. Considere X um arranjo; length, uma função que devolve o tamanho do arranjo passado como parâmetro. A endentação demarca blocos de comandos.

1 for j=2 to length(X)
2      do         valor = X[ j ]
3                    i = j-1
4                    while i > 0 e X[ i ] > valor
5                              do         X[i+1] = X[ i ]
6                                            i = i-1
7                    X[i+1] = valor

Considerando o arranjo X = [5, 2, 4, 6, 1, 3], qual o estado de X após a execução do algoritmo?

Alternativas
Comentários
  • É um algoritmo de ordenação por inserção. Vai ordenando na ordem do vetor à partir do segundo. Começa da esquerda, e a parte da esquerda vai ficando ordenada. A parte da direita insere o elemento na posição ordenada na esquerda. O funcionamento desse algoritmo é caracterizado por dividir o arranjo em dois segmentos, sendo o primeiro ordenado e o segundo não ordenado. A seguir, todos os elementos do segundo segmento vão, um a um, sendo inseridos no primeiro segmento. (baralho)

  • Algoritmo não funciona

  • Acertei a questão, mas quando escrevi o código em java deu: [5, 1, 2, 3, 4, 6]

    Precisaria de 2 alterações:

    -> j começar em 0

    -> "i >= 0" no while

  • Força Guerreiro!!!!!!