Logo Passei Direto
Buscar

Literatura

UNICARIOCA
5)Joao era um aluno da TURMA PAA012989 que gostava de implementar e testar os a Algoritmos vistos em aula. Ele percebeu que 0 algoritmo InsertionSort (Ordena- Por-Inserção era bem eficiente para vetores com poucos elementos. Ele implementou então 0 seguinte algoritmo: ALGORITMO-DO-JOAO(A, n) 1 se n ≤ 100 2 entao INSERTIONSORT(A, n) 3 senao MERGESORT(A, n) Pedro, um colega de Joao, sabia que 0 InsertionSort tinha complexidade de pior caso MW Θ(n²) e concluiu que 0 algoritmo do Joao tinha complexidade Θ(n²) Joao, por outro lado, afirmou que seu algoritmo tinha complexidade 0(n lg n). Quem está certo? Por que?
User badge image
Engenharia Reversa

ontem

Respostas

User badge image

Ed Verified user icon

ontem

No caso do algoritmo do João, ele utiliza o InsertionSort para vetores com até 100 elementos e o MergeSort para vetores maiores. 1. Complexidade do InsertionSort: De fato, o InsertionSort tem complexidade de pior caso Θ(n²), mas isso se aplica apenas quando n é pequeno. Para n ≤ 100, essa complexidade é aceitável. 2. Complexidade do MergeSort: O MergeSort tem complexidade Θ(n log n) e é mais eficiente para vetores grandes. 3. Análise do algoritmo do João: Quando n é menor ou igual a 100, o algoritmo utiliza o InsertionSort, que é Θ(n²). No entanto, para n maior que 100, ele utiliza o MergeSort, que é Θ(n log n). Portanto, a complexidade do algoritmo do João depende do tamanho do vetor. Para n ≤ 100, a complexidade é Θ(n²), e para n > 100, a complexidade é Θ(n log n). Assim, João está parcialmente certo, pois seu algoritmo tem complexidade Θ(n log n) para n > 100, mas Pedro também está certo ao afirmar que a complexidade é Θ(n²) para n ≤ 100. A resposta correta depende do tamanho do vetor A.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina