Aps ordenação de vetores

Embed Size (px)

DESCRIPTION

aps de ordenação de vetores

Citation preview

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