Download - Aps ordenação de vetores
Universidade Paulista
Desenvolvimento de sistema para anlise de performance de algoritmos de ordenao de dados
Unip2015Universidade Paulista
Desenvolvimento de sistema para anlise de performance de algoritmos de ordenao de dados
Nome: ra:Jorge c20hbc2Eduardo c10cfd3Bruno c105449Rodrigo T. C086hb2
UNIP2015
Introduo Organizao e eficincia, no mundo de hoje imprescindvel,
e no poderia ser diferente no Mundo Digital, que dobra de tamanho a
cada 2 anos.
Os Algoritmos de Ordenao de Vetores tem justamente esse fim,
automatizar o processo de ordenao de dados, sejam eles quais for.
No seu dia a dia o Homem se depara com a necessidade de consultar
dados ordenados, tome como exemplo uma lista telefnica. Imagine
como seria consultar o nmero de uma pessoa se os nomes na lista no
tivessem ordenados de maneira alfabtica? Por isso no cenrio
tecnolgico de hoje a ordenao de dados tao importante.Nesta APS
mostraremos diversos algoritmos de ordenao interna , Sendo
eles:
Bubble Sort
Merge Sort
Heap Sort
Selection Sort
Insertion Sort
Quick Sort
Bubble Sort
O Bubble Sort um dos mtodos de ordenao mais simples, porm no e tao eficiente em casos em que a quantidade de elementos e grande, tendo em vista que ele poder no pior dos casos fazer n operaes, e no melhor dos casos n operaes aonde n representa o nmero dos elementos.Consiste em percorrer o vetor diversas vezes sempre flutuando o maior valor para o topo (este processo tambm pode ser feito inversamente, jogando o menor valor para o incio, apenas invertendo a lgica).
Merge Sort
Merge Sort um mtodo de ordenao que utiliza a tcnica
dividir-para-conquistar, basicamente ele divide o vetor em partes
menores, ordena essas partes menores e depois une as partes
ordenadas, um dos seus problemas dependendo da maneira que
implementado, e a memria, j que ele utiliza recursividade, criando
sempre cpias do vetor para cada instancia de recursividade.Os trs
passos teis dos algoritmos dividir-para-conquistar, que se aplicam
ao Merge Sort so:Dividir: Dividir os dados em subsequncias
pequenas;
Este passo realizado recursivamente, iniciando com a diviso do
vetor de n elementos em duas metades, cada uma das metades
novamente dividida em duas novas metades e assim por diante, at que
no seja mais possvel a diviso (ou seja, sobre n vetores com um
elemento cada).
Conquistar: Classificar as duas metades recursivamente aplicando o merge sort;
Combinar: Juntar as duas metades em um nico conjunto j classificado. Para completar a ordenao do vetor original de n elementos, faz-se o merge ou a fuso dos sub-vetores j ordenados.
Heap Sort
O Heap Sort Cria uma estrutura de arvore e utiliza uma derivao do mtodo de seleo em conjunto.Para uma ordenao crescente, deve ser construdo um heap mximo (o maior elemento fica na raiz). Para uma ordenao decrescente, deve ser construdo um heap mnimo (o menor elemento fica na raiz). Assim os elementos so inseridos e depois retirados na ordem escolhida de acordo com a construo da estrutura, este mtodo de ordenao e consideravelmente rpido, e no ocupa muita memria, mas no e considerado um mtodo de ordenao estvel pois altera as chaves primarias.
Selection SortEste algoritmo baseado em se passar sempre o menor valor do vetor para a primeira posio (ou o maior dependendo da ordem requerida), depois o segundo menor valor para a segunda posio e assim sucessivamente, at os ltimos dois elementos. Neste algoritmo de ordenao escolhido um nmero a partir do primeiro, este nmero escolhido comparado com os nmeros a partir da sua direita, quando encontrado um nmero menor, o nmero escolhido ocupa a posio do menor nmero encontrado. Este nmero encontrado ser o prximo nmero escolhido, caso no for encontrado nenhum nmero menor que este escolhido, ele colocado na posio do primeiro nmero escolhido, e o prximo nmero sua direita vai ser o escolhido para fazer as comparaes. repetido esse processo at que a lista esteja ordenada.
Quick Sort
O Quicksort o algoritmo mais eficiente na ordenao por comparao.
Nele se escolhe um elemento chamado de piv, a partir disto
organizada a lista para que todos os nmeros anteriores a ele sejam
menores que ele, e todos os nmeros posteriores a ele sejam maiores
que ele. Ao final desse processo o nmero piv j est em sua posio
final. Os dois grupos desordenados recursivamente sofreram o mesmo
processo at que a lista esteja ordenada.
Sistema Para Calculo de Performance
Fizemos um sistema simples de calculo de performance, que
consiste na ordenao de 10 mil elementos, 50 mil elementos ou 100
mil elementos.
Apos o usurio escolher a opo, dado o processamento da maquina, com
todos os algoritmos aqui citados, em seguida e mostrado para o
usurio o tempo que cada algoritmo levou para ordenar o vetor.Segue
os Codigos
Mainimport javax.swing.JOptionPane;import java.util.*;public class
MainClass {
public static void main(String args[]){try{int continua=0;while(continua==0){long marcatempo, diftempo;int opcao, tam=0;opcao=Integer.parseInt(JOptionPane.showInputDialog("Digite qual das opes deseja testar"+ "\n1-Ordenao 10.000 elementos"+ "\n2-Ordenao 50.000 elementos"+ "\n3-Ordenao 100.000 elementos"));switch(opcao){case 1:tam=10000;break;case 2:tam=50000;break;case 3:tam=100000;break;case 4:break;default:break;}String resultado="";long tempo[] = new long[6];int mainvetor[]= new int[tam];int secvetor[] = new int[tam];InsertionSort insertion = new InsertionSort();HeapSort heap = new HeapSort(); MergeSort merge = new MergeSort();//QuickSort quick = new QuickSort();BubbleSort bubble = new BubbleSort();SelectionSort selection = new SelectionSort();for(int i=0;i