Prévia do material em texto
Universidade Paulista Cristian Kevin de Sousa Noleto ATIVIDADES PRATICAS SUPERVISIONADAS GOIÂNIA-GO 2019 CRISTIAN KEVIN DE SOUSA NOLETO-N307633 ATIVIDADES PRÁTICAS SUPERVISIONADAS Atividade praticas Supervisionadas (APS) apresentadas como exigência para a Avaliação do 4º semestre, do Curso de Ciências da computação da Universidade Paulista (GO), sob Orientação dos professores do semestre Orientador: Prof. Fabriccio. GOIÂNIA-GO 2019 Índice Objetivo do trabalho.......................................................................................4 Introdução......................................................................................................5 Referencial Histórico......................................................................................7 Desenvolvimento........................................................................................ Resultados e Discução.................................................................................... Considerações finais.......................................................................................... Referencias bibliográficas.............................................................................. Código fonte................................................................................................... Objetivo do trabalho Este trabalho da APS tem como principal objetivo avaliar o conhecimento dos alunos do 3º Período de Ciência da computação da Universidade Paulista, e para isto é utilizado as opções de linguagem Java e Visual Microsoft C# no objetivo de criar e executar um algoritmo de ordenação, que utilize o campo do tipo binário(BLOB) para catalogar 100 mil imagens e escolher três técnicas de ordenação para obter os dados armazenados. Introdução Na computação existe uma série de algoritmos que utilizam diferentes técnicas de ordenação para organizar um conjunto de dados, eles são conhecidos como Métodos de Ordenação ou Algoritmos de Ordenação Os métodos de ordenação se classificam em: Ordenação Interna: onde todos os elementos a serem ordenados cabem na memória principal e qualquer registro pode ser imediatamente acessado. Ordenação Externa: onde os elementos a serem ordenados não cabem na memória principal e os registros são acessados sequencialmente ou em grandes blocos. Dentro da ordenação interna existem os métodos simples e eficiente. Métodos Simples Os métodos simples são adequados para pequenos vetores, são programas pequenos e fáceis de entender. Possuem complexidade C(n) = O(n²), ou seja, requerem O(n²) comparações. Exemplos: Insertion Sort, Selection Sort, Bubble Sort, Comb Sort. Nos algoritmos de ordenação as medidas de complexidade mais relevantes são: Número de comparações C(n) entre chaves. Número de movimentações M(n) dos registros dos vetores. Onde n é o número de registros. Métodos Eficientes Os métodos eficientes são mais complexos nos detalhes, requerem um número menor de comparações. São projetados para trabalhar com uma quantidade maior de dados e possuem complexidade C(n) = O(n log n). Exemplos: Quick sort, Merge sort, Shell sort, Heap sort, Radix sort, Gnome sort, Count sort, Bucket sort, Cocktail sort, Timsort. Mostraremos alguns exemplos de Algoritmos de organização Bubble Sort Bubble sort é o algoritmo mais simples, mas o menos eficientes. Neste algoritmo cada elemento da posição i será comparado com o elemento da posição i + 1, ou seja, um elemento da posição 2 será comparado com o elemento da posição 3. Caso o elemento da posição 2 for maior que o da posição 3, eles trocam de lugar e assim sucessivamente. Por causa dessa forma de execução, o vetor terá que ser percorrido quantas vezes que for necessária, tornando o algoritmo ineficiente para listas muito grandes. Selection Sort Este algoritmo é baseado em se passar sempre o menor valor do vetor para a primeira posição (ou o maior dependendo da ordem requerida), depois o segundo menor valor para a segunda posição e assim sucessivamente, até os últimos dois elementos. Neste algoritmo de ordenação é escolhido um número a partir do primeiro, este número escolhido é comparado com os números a partir da sua direita, quando encontrado um número menor, o número escolhido ocupa a posição do menor número encontrado. Este número encontrado será o próximo número escolhido, caso não for encontrado nenhum número menor que este escolhido, ele é colocado na posição do primeiro número escolhido, e o próximo número à sua direita vai ser o escolhido para fazer as comparações. É repetido esse processo até que a lista esteja ordenada. Insertion sort O Insertion sort é um algoritmo simples e eficiente quando aplicado em pequenas listas. Neste algoritmo a lista é percorrida da esquerda para a direita, à medida que avança vai deixando os elementos mais à esquerda ordenados. O algoritmo funciona da mesma forma que as pessoas usam para ordenar cartas em um jogo de baralho como o pôquer. Quick sort O Quicksort é o algoritmo mais eficiente na ordenação por comparação. Nele se escolhe um elemento chamado de pivô, a partir disto é organizada a lista para que todos os números anteriores a ele sejam menores que ele, e todos os números posteriores a ele sejam maiores que ele. Ao final desse processo o número pivô já está em sua posição final. Os dois grupos desordenados recursivamente sofreram o mesmo processo até que a lista esteja ordenada. Referencial Histórico Desenvolvimento Resultados e Discussão Considerações finais Referências bibliográficas Código Fonte