DESENVOLVIMENTO DE SISTEMA PARA ANÁLISE DE PERFORMANCE DE ALGORITMOS DE ORDENAÇÃO DE DADOS
Por: Vinicius Aparecido Da Silva • 5/4/2020 • Trabalho acadêmico • 24.471 Palavras (98 Páginas) • 273 Visualizações
ÍNDICE
OBJETIVO DO TRABALHO 2
1. INTRODUÇÃO 4
2. REFERENCIAL TEÓRICO 8
2.1 SHELLSORT 9
2.2 RADIXSORT 11
2.3 MERGESORT 12
3. DESENVOLVIMENTO 13
4. RESULTADOS E DISCUSSÃO 24
5. CONSIDERAÇÕES FINAIS 33
6. REFERÊNCIAS BIBLIOGRÁFICAS 36
7. CÓDIGO FONTE 38
OBJETIVO DO TRABALHO
O objetivo deste trabalho é a criação de métodos eficientes com performance elevada em ordenação de dados, para auxiliar na observação e monitoramento dos crimes ambientais na região amazônica. No desenvolvimento do trabalho, o objetivo foi centrado em encontrar algoritmos computacionais para ordenação, sendo feito uma breve analise sobre os principais tipos destes e uma seleção sobre os três com melhores resultados.
O uso de meios tecnológicos como ferramenta de fiscalização vem crescendo e se difundindo em meio ao mundo moderno, visto que não é limitado ao tema do trabalho a existência de um satélite que monitora a região amazônica, dentro desta se encontra atualmente radares, sensores e os próprios ditos satélites para a observação profunda dos bens da floresta. Se apossando destes recursos, órgãos feito o IBAMA conseguem evitar o tão temido desmatamento, ou problemas como incêndios. O ‘’amazonia-1’’ é o primeiro satélite de monitoramento da terra totalmente projetado, integrado, testado e operado pelo Brasil, e tem foco na fiscalização da região amazônica, mas busca a vigia sobre todo o território nacional buscando qualquer outra atividade clandestina que traga prejuízos ao meio-ambiente. Iniciativas governamentais como uma operação com nome de “Fauna Legal”, coordenada pelo Ibama, que se apropriou de meios tecnológicos (internet) para identificar infratores que estavam prejudicando faunas locais com comercio ilícito de animais silvestre, conseguiu aplicar 3 milhões de reais em multas contra os agressores. O uso de tecnologias para evitar futuras degradações ambientais vem a calhar até na área da agricultura, já que segundo José Maria da Silveira, um professor de economia da Unicamp afirma que ‘’o uso de softwares ajuda na diminuição do uso de insumos, fertilizantes e pesticidas. “Podendo também ser possível à diminuição de várias etapas no plantio, o que significa menos gases lançados na atmosfera”, ou até mesmo no dia-a-dia com coisas que podem parecer até imperceptíveis feitos o uso popular de GPS, ou outros aplicativos de geolocalização, as pessoas passam menos tempo em seus automóveis visto que sempre são conduzidas por aplicativos a seguirem rotas alternativas menores e mais eficientes, fazendo assim a geração de CO2 diminuir.
Visto que a tendência de usos tecnológicos para combater essas atividades prejudiciais tende a crescer cada vez mais, se cria uma pergunta que necessita ser respondia: como aprimorar e aperfeiçoar esse processo de resgate ao meio ambiente com os recursos tecnológicos atuais? Bem essa pergunta se encaixa perfeitamente em nosso dilema gerado pela APS, visto que é nos dado a informação que um satélite está gerando registros diariamente sobre a floresta amazônica, porém não se tem um método organizacional para ordenar esses dados e fazer uma comparação dia após dia. E respondendo esta pergunta e solucionando o problema proposto pela atividade, que desenvolvemos um algoritmo funcional para ordenar os dados que são gerados diariamente e facilitar a criação de arquivos ordenados para comparativos, sendo sempre prezado o tempo de resposta dos algoritmos selecionados e os recursos computacionais que este gerará, garantindo assim uma ordenação rápida e eficiente para auxiliar na fiscalização ambiental proposta.
INTRODUÇÃO
Esta Atividade de pratica supervisionada é destinada ao tema de “desenvolvimento de sistema para a análise de performance de algoritmos de organização de dados” , tendo como objetivo a criação de métodos organizacionais de dados para o monitoramento do desmatamento da floresta amazônica, sabendo que um satélite é responsável pela obtenção de fotos do estado da floresta, um algoritmo deverá ser criado para realizar as comparações entre os dados e revelar se alguma área está sendo lesada pelos crimes ambientais, assim facilitando e otimizando os processos de fiscalizações.
Algoritmos de ordenação podem ser divididos em: internos e externos. Os externos são usados quando o tamanho dos dados inseridos ultrapassa o tamanho da memória interna fixa, assim os algoritmos externos ordenam dados de tamanhos maiores do que a memória interna, tendo mais limitações e gastando mais recursos para realizar essa ordenação visto que o acesso à memória secundaria é mais ‘’cara’’ do que na memória primaria , e a máquina terá de ficar acessando dados que não estão na memória primaria para realizar a transferência e por fim ordenar . Já algoritmos de ordenação interna organizam dados que estão na memória interna, e podem ser facilmente acessados de imediato, dentro dos métodos internos se tem os: métodos simples como: BubbleSort, InsertionSort, SelectionSort; e os métodos eficientes tais como :QuickSort, MergeSort e ShellSort. Uma breve explicação sobre esses famosos algoritmos:
BubbleSort: O BubbleSort é um algoritmo simples de ordenação, usado em casos de memória interna, sendo um método de troca , que realiza estas trocas sucessivamente dentro do vetor a ser ordenado , realiza varreduras no vetor e assim sempre que encontra um número menor(ou maior, depende do método organizacional escolhido (decrescente/crescente)) que o número analisado, o algoritmo realiza uma realocação entre estes, o elemento analisado ‘’i’’ será comparado com o elemento ‘’i+1’’ e assim sucessivamente, fazendo o algoritmo varrer o vetor várias e várias vezes em casos de um vetor extenso, trazendo certa ineficiência nestes ocorridos, o gasto computacional será grande. O nome do algoritmo “Bubble’’ de uma referência à maneira organizacional do algoritmo, tendo que ele faz o maior elemento ‘’flutuar’’ ao topo do vetor.
...