O DESENVOLVIMENTO DE UM SISTEMA PARA ANÁLISE DE PERFORMANCE DE ALGORITMOS DE ORDENAÇÃO DE DADOS
Por: Clipeflix • 16/11/2022 • Trabalho acadêmico • 6.654 Palavras (27 Páginas) • 174 Visualizações
UNIVERSIDADE PAULISTA – UNIP
Gabriel Toth Gonçalves – N677244
Marcos Gustavo Campos da Silva – N575GP5
Ramon Morales Espindola – N587DC7
Gabriel Toledo Ventura – N607750
DESENVOLVIMENTO DE UM SISTEMA PARA ANÁLISE DE PERFORMANCE
DE ALGORITMOS DE ORDENAÇÃO DE DADOS
SÃO PAULO
2021
DESENVOLVIMENTO DE UM SISTEMA PARA ANÁLISE DE PERFORMANCE
DE ALGORITMOS DE ORDENAÇÃO DE DADOS
Atividade prática supervisionada apresentada ao curso Ciência da Computação, Universidade paulista – UNIP. Orientador: .
SÃO PAULO
2021
Sumário
I. Introdução 1
I.I. Quicksort 2
I.II. Mergesort 2
I.III. Heapsort 2
II. Referencial teórico 2
III. Desenvolvimento 5
IV. Resultados e Discussões 5
V. Considerações finais 5
VI. Referência bibliográfica 5
VII. Relatório com o Código Fonte 6
VIII. Ficha de Atividades Práticas Supervisionadas 6
I. Introdução
Método de ordenação é a forma mais rápida, simples e viável de armazenar e recuperar informações especificas dentro de um conjunto grande de diversas outras informações.
Dentro da ciência que cuida da computação, os algoritmos de ordenação são aqueles responsáveis por agrupar e dar uma sequência aos itens trabalhados, sendo a forma mais simples de estabelecer uma ordenação complexa ou parcial. Dentre diversos motivos para se utilizar de métodos de ordenação, aquele que mais se leva em consideração é a possibilidade de poder obter acesso a diversos dados de modo rápido e eficiente, dinamizando e otimizando o tempo em todos os aspectos trabalhados.
Dentro os diversos métodos existentes de se ordenar algo, não é possível estabelecer um que seja universal e utilizado para tudo e por todos, portanto é necessário conhecer os diferentes métodos existentes e pautado no desafio que foi apresentado, encontrar aquele que mais se adéque a aplicação que está sendo construída, sendo necessário analisar o problema que foi dado, pesquisar e delimitar as características dos dados, decidir qual método é mais viável e por fim aplicar tudo que for necessário para finalização.
Existem alguns aspectos e medidas para manter a eficiência do projeto e o seu êxito, sendo o mais vital em todas as etapas o “tempo”, pois é necessário tempo para a codificação, tempo para a execução e a verificação das informações apresentadas e tempo para adequação e lapidação do projeto final. Normalmente o total de tempo utilizado em um projeto é mensurado através da quantidade de operações positivas e críticas que são efetuadas, sendo as operações críticas, aquelas que comparam chaves, troca de registros, dificuldade em certas funcionalidades e não funcionamento de certo programa.
Conforme estudos e verificações, foi possível determinar três métodos de ordenação que mais se adequavam para o projeto proposto, assim chegando nos seguintes algoritmos: quicksort, mergesort e heapsort.
I.I. Quicksort
Quicksort se trata de um método de ordenação com uma boa rapidez e eficiência, que se pauta no modelo de dividir e conquistar.
A estratégia por trás desse algoritmo visa rearranjar as chaves menores até as maiores, ordenando as sublistas de chaves menores e maiores recursivamente até que todas estejam corretamente alinhadas das menores até as maiores.
I.II. Mergesort
Mergesort é um algoritmo de ordenação eficientes que também se baseia no conceito de dividir e conquistar, contudo ele é mais eficiente quando se trata de maiores ordenações pois independentemente da posição de um dado ele sempre será ordenado de forma eficientes e correta.
O funcionamento se baseia em uma rotina fundamental, que combina dois “array” ordenados em outro também ordenado. Assim como o Quicksort, ele aplica verias vezes um posicionamento para poder ordenar um dado de forma correta e organizada.
I.III. Heapsort
Heapsort é um método de ordenação que funciona com o princípio de ordenação por seleção, mais utilizados em casos/cenários ruins pois possui um desempenho focado em situações maiores que demandem mais funções, mantendo um desempenho bom e rápida resposta.
II. Referencial teórico
A base de uma escolha se tratando de um método de ordenação se deve a necessidade a qual um sistema ou software necessitam, disponibilizando- se de uma vasta biblioteca já estabelecida e mutável, deixando assim o desenvolvedor optar por uma gama de diversidade nas formas de ordenação das informações desejadas. Contudo, existem métodos e algoritmos que podem se adequar ou se moldar melhor e mais facilmente dentro do projeto desejado.
Para contextualizar e mostrar a importância dos algoritmos de ordenação, é necessário rever os significados por trás do conceito.
A ordenação é uma forma de organizar algo de uma forma simples e que facilite encontrar a informação desejado, agindo como um meio de organização que facilita na recuperação de dados, um exemplo claro da importância da utilização deste método é uma lista telefônica, que se não houvesse método ordenador, seria quase impossível de se encontrar alguém ou algum número desejado, portanto se utiliza da ordenação alfabética para melhorar a utilização e viabilizar obtenção de resultados desejados. Já na computação, existem diversas formas e algoritmos de ordenação que utilizam de diversas e diferentes técnicas para organizar um conjunto desejado de dados. Os métodos de ordenação podem ser classificados de duas formas diferentes sendo essas a ordenação interna - onde todos os elementos que serão ordenados cabem na memória principal e todos os registros armazenados podem ser acessados no momento desejado; e ordenação externa – onde os elementos que devem ser armazenados e ordenados não cabem na memória principal, assim sendo necessário integrações e adequações para suportar todos os dados, além dos registros poderem ser acessados em blocos ou sequencialmente.
...