You are on page 1of 2

LISTA DE ATIVIDADES

CLEYTON CAETANO DE SOUZA – EDA


– ESTRUTURA DE DADOS E
ALGORITMOS
ATIVIDADE COMPLEMENTAR

1. Descreva, com suas palavras, qual a característica que diferencia os Algoritmos de Ordenação do tipo
Troca, Seleção, Inserção e Distribuição.

2. O que é um algoritmo de ordenação adaptativo e por que é desejável o uso desses algoritmos de
ordenação?

3. Use o método Quick Sort para ordenar esse array de Strings (escolha como pivô, sempre o elemento
do meio da sequência).

Janeiro – Fevereiro – Março – Abril – Maio – Junho – Julho – Agosto – Setembro – Outubro – Novembro – Dezembro

4. Demonstre graficamente, passo a passo, como acontecerá o processo de ordenação de cada


sequência, utilizando os dois algoritmos solicitados. Para cada questão, indique qual algoritmo você acha
que realizou a ordenação de forma mais eficiente e o porquê (tente explicar pensando em como as
características do algoritmo contribuem para que ele tenha um bom desempenho).

a) Sequência: Algoritmos:
10, 9, 8, 7, 6, 5, 4 Distribuição de Chaves e Seleção Direta

b) Sequência: Algoritmos:
2000, 10, 13324, 2500 Radix Sort e Inserção Direta

c) Sequência: Algoritmos:
50, 15, 30, 40, 10, 5 Shell Sort (h= 2, 1) e Bolha

d) Sequência: Algoritmos:
11, 21, 13, 34, 25, 63 Mergesort e Heapsort

5. Assinale V(verdadeiro) ou F(falso). Justifique as falsas.


A estrutura de dados heap, que é eficiente para a implementação do método de ordenação
heapsort, consiste em uma árvore binária completa e sua implementação mais simples ocorre
na forma de array.
A eficácia do método de ordenação rápida (quicksort) depende da escolha do pivô mais
adequado ao conjunto de dados que se deseja ordenar. A situação ótima ocorre quando o
pivô escolhido é igual ao valor máximo ou ao valor mínimo do conjunto de dados.
Por característica, o algoritmo quicksort apresenta melhor desempenho que o merge sort.
Para a classificação de grandes volumes de dados, recomenda-se o emprego do método de
inserção direta.
Caso os dados estejam fora de ordem, o uso do método de classificação por inserção é
pouco eficiente, mas quanto mais ordenados os dados estiverem inicialmente, mais eficiente
em termos de tempo de execução ele se torna.
O método de classificação Quicksort é estável e executado em tempo linearmente
dependente da quantidade de dados que estão sendo classificados.
Métodos de classificação por contagem são mais eficientes em termos de complexidade de
tempo de execução que os métodos de classificação por comparação de chave.
O método de classificação Shellsort iguala-se ao método Quicksort em termos de
complexidade temporal, porém é mais eficiente para quantidades pequenas a moderadas de
dados.

6. (A) Utilize os algoritmos de ordenação estudados em sala de aula (LISTAGEM 1) para ordenar as
seguintes sequências (LISTAGEM 2). (B) Para cada par (Algoritmo, Sequência), realize uma contagem de
quantas comparações e quantas trocas de posição foram realizadas. (C) Ao fim, compare a quantidade
de comparações e trocas de cada algoritmo para cada tipo de sequência e destaque qual (quais)
algoritmo (s) é (são) mais indicado (s) quando a sequência for a Ordenada, Aleatória ou Descendente.

LISTAGEM 1: LISTAGEM 2:
• Bubble Sort (Bolha) • (Ordenado) 10, 20, 30, 40, 50
• Quick Sort • (Descendente) 50, 40, 30, 20, 10
• Selection Sort (Seleção • (Aleatório) 50, 20, 30, 10, 40
direta)
• Heap Sort
• Insertion Sort (Inserção
direta)
• Shell (h=3, 2, 1)
• Distribuição de Chaves
• Radix Sort
• Merge Sort

You might also like