Imagem de fundo

O método de ordenação conhecido por merge sort é usualmente...

O método de ordenação conhecido por merge sort é usualmente implementado de maneira recursiva e realiza o ordenamento basicamente separando o vetor de dados em análise em duas partes, até que haja a comparação de apenas dois elementos para se verificar se há a necessidade de troca da posição. Depois, também de maneira recursiva, esses elementos vão sendo novamente reagrupados até que o vetor seja retornado na ordem ascendente ou descendente, conforme o interesse, como esquematizado na figura a seguir.


Imagem associada para resolução da questão


Fonte: IFSP, 2022.


Considerando o trecho de código a seguir e o vetor B=[10, 9, 8, 7, 6, 5, 4, 3, 2, 1], é correto afirmar que, no print(A) da linha 7 com o ordenamento ascendente do vetor B, a resposta da sua saída será:


1

defmergesort(A, aux,esquerda, direita):

2

if direita <= esquerda:

3

return

4

meio = (esquerda + direita) // 2

5

# Ordenaa primeira metade do arranjo.

6

mergesort(A, aux,esquerda, meio)

7

print(A)

8

# Ordenaa segunda metadedo arranjo.

9

mergesort(A, aux,meio + 1, direita)

10

# Combina as duas metades ordenadas anteriormente.

11

merge(A, aux,esquerda, meio, direita)



A

[9, 10, 8, 7, 6, 5, 4, 3, 2, 1]


B

[10, 9, 8, 6, 7, 5, 4, 3, 2, 1]


C

[10, 9, 8, 7, 6, 4, 5, 3, 2, 1]


D

[10, 9, 8, 7, 6, 5, 4, 3, 1, 2]