Escolar Documentos
Profissional Documentos
Cultura Documentos
Aps 4 Sme
Aps 4 Sme
Unip
2015
Nome:
ra:
Jorge
c20hbc2
Eduardo
c10cfd3
Bruno
c105449
Rodrigo T.
C086hb2
UNIP
2015
Introduo
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).
A complexidade desse algoritmo de Ordem quadrtica. Por isso, ele no
recomendado para programas que precisem de velocidade e operem com
quantidade elevada de dados.
Merge Sort
Merge Sort um mtodo de ordenao que utiliza a tcnica dividir-paraconquistar, 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:
1. 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
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 Sort
Este 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
Quick Sort
Main
import
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"
marcatempo=System.currentTimeMillis();
quick.quickSort(secvetor,0, tam-1);
diftempo = System.currentTimeMillis()-marcatempo;
tempo[4]=diftempo;*/
for(int cont=0;cont<mainvetor.length;cont++)
{
secvetor[cont]=mainvetor[cont];
}
marcatempo=System.nanoTime();
heap.heapSort(secvetor, tam);
diftempo = System.nanoTime()-marcatempo;
tempo[5]=diftempo;
String
metodo[]={"Bolha","Seleo","Insero","Intercalao","partio","Monte"};
for(int i=0;i<6;i++)
{
resultado += metodo[i]+": "+tempo[i]+"ns"+"\n";
}
JOptionPane.showMessageDialog(null, "O tempo de cada
mtodo em
"+tam+"
elementos\n"+resultado,"Mensagem",JOptionPane.INFORMATION_MESSAGE);
continua=JOptionPane.showConfirmDialog(null,"Deseja
continuar?","Pergunta",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_M
ESSAGE);
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"Erro, "+
e.toString()+","+e.getMessage(),"Erro", JOptionPane.ERROR_MESSAGE);
e.printStackTrace();
}
}
}
Bubble Sort
Bubble Sort
Heap Sort
Insertion Sor
Merge Sort
Quick Sor
Selection Sort
Anlise de Performance
Depois de realizar testes de performance o grupo pode concluir que o processo
de execuo e comparao mais eficiente foi o ShellSort, este mtodo o mais
agil entre os mtodos utilizados neste trabalho.
Consideraes Finais
Este trabalho teve como objetivo a aprendizagem e o comprendimento dos
algoritmos de ordenao, neste trabalho formaram utilizados diversos tipos de
ordenao, mas foram testadas.
Este grupo testou a maior parte deste mtodo de ordenao e conclumos que
o insertion short e o mtodo mais adequado para uma ordenao.
Universidade Paulista
Tempo de execuo
O mtodo que levou menos tempo real para executar recebeu o valor 1 e os
outros receberam valores relativos.
Elementos em ordem aleatria:
Nmero de comparaes
Tempo de execuo
-Elementos em ordem crescente