Skip to content

Utilização de Quicksort e Heapsort para ordenar vetores incluindo o passo a passo didático e o tempo de execução de cada um.

Notifications You must be signed in to change notification settings

ph-cardoso/trabalhoOrdenacao

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ORIENTAÇÕES

O foco central do trabalho é poder compreender as distintas propriedades dos algoritmos de ordenação e dessa forma poder realizar a implementação. O trabalho está dividido em 2 partes.

Trabalho 2 - Ordenação por Quicksort e Heapsort

Neste quesito do trabalho será desenvolvido um sistema didático que explique ao usuário o funcionamento de cada um destes métodos. Para isso, o próprio sistema deverá criar vetores de números inteiros que serão ordenados. O usuário deve poder selecionar se o vetor deve conter números em ordem crescente, decrescente ou aleatórios, e o tamanho do vetor.

Para visualizar os resultados, o usuário deverá escolher se deseja ver apenas o resultado final (dados ordenados) ou se deseja executar os algoritmos passo a passo, vendo a explicações para a execução de cada algoritmo. Caso o usuário deseje executar os algoritmos passo a passo ele pode selecionar quais passos deseja visualizar. Para cada um dos métodos os passos relevantes são distintos:

Quicksort

a) Seleção de pivô: apresenta qual elemento foi selecionado e como.

b) Troca de elementos: apresenta o valor do pivô, o índice e valor dos elementos a serem trocados.

c) Divisão do vetor: mostra como o vetor está sendo particionado: quais são os índices e elementos de cada parte.

Heapsort

a) Os passos para (re)construção do heap, mostrando o elemento em questão, seus filhos e a troca sendo feita

b) O elemento selecionado a cada passo pelo heapsort

O usuário deve poder informar ao sistema quais destes passos deseja visualizar (pode ser apenas 1, uma combinação deles ou todos). Além disso, o sistema deverá apresentar ao usuário o tempo gasto para a ordenação, e o número de comparações e movimentações feitas entre registros.

O que deve ser entregue

  • Código fonte do programa em C (código muito bem identado e comentado).

  • Programa executável compilado.

  • Documentação do trabalho. Entre outras coisas, a documentação deve conter:

    1. Introdução: descrição do problema a ser resolvido e visão geral sobre o funcionamento do programa.

    2. Implementação: descrição sobre a implementação do programa. Deve ser detalhada a estrutura de dados utilizada (de preferência com diagramas ilustrativos), o funcionamento das principais funções e procedimentos utilizados, o formato de entrada e saída de dados, bem como decisões tomadas relativas aos casos e detalhes de especificação que porventura estejam omissos no enunciado.

    3. Conclusão: comentários gerais sobre o trabalho e as principais dificuldades encontradas em sua implementação.

    4. Bibliografia: bibliografia utilizada para o desenvolvimento do trabalho, incluindo sites da Internet se for o caso

About

Utilização de Quicksort e Heapsort para ordenar vetores incluindo o passo a passo didático e o tempo de execução de cada um.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages