Fazer um menu para que o usuário selecione :
BOLHA
INSERÇÃO
SELEÇÃO DIRETA
QUICKSORT
HEAPSORT
Vetor com 50.000 posições
Gerar Valor e guardar os mesmos
Listar (posição Inicial , Posição Final)
Mostrar na Tela :
· Nome do método mais rápido
· Nome do método mais lento
· Média de tempo
public class Metodos {
private int Dados[]= new int[100];
private int Limite;
public Metodos(int imax){
setlimite(imax);
Dados = new int[getlimite()];
}
public int getlimite() {
return Limite;
}
public void setlimite(int limite) {
Limite = limite;
}
public void gerarvalores(){
for (int i =0; i<getlimite();i++){
Dados[i] = (int) (Math.random()* 1000);
}
}
public void listar(int ipular){
for (int i=0; i< getlimite();i++)
if (((i+1) !=0) && ((i+1)%ipular!=0) )
System.out.print(Dados[i]+" ");
else
System.out.println(" ");
}
//Quick Sort
public void Quick(int primeiro,int ultimo){
int e=primeiro+1,d=ultimo,pivo;
Trocar(primeiro,(primeiro+ultimo)/2);
pivo = Dados[primeiro];
while( e<=d){
while (Dados[e]<pivo) e++;
while (Dados[d]>pivo) d--;
if(e<d)
Trocar(e++,d--);
else
e++;
}
Trocar(d,primeiro);
if(primeiro < d-1) Quick(primeiro,d-1);
if(d+1 < ultimo) Quick(d+1,ultimo);
}
public void Trocar(int a, int b){
int temp = Dados[a];
Dados[a] = Dados[b];
Dados[b] = temp;
}
//Quick SORT Preparar PIVO
public void OrdenarQuick(int n){
int max=0;
for(int i=1;i<n;i++)
if(Dados[max]<Dados[i])
max = i;
Trocar(n-1,max);
Quick(0,n-2);
}
//Seleção
public void OrdenarSelecao(int n){
for (int i=0,j,l;i<n-1;i++){
for (j=i+1,l=i;j<n;j++)
if (Dados[j]<Dados[l])
l= j;
Trocar(l,i);
}
}
//Balanceamento
public void Mover(int pri, int ult){
int tam = 2 * pri+1;
while(tam <= ult){
if(tam < ult && Dados[tam] < Dados[tam+1])
tam++;
if(Dados[pri]<Dados[tam]){
Trocar(pri,tam);
pri=tam;
tam=2*pri+1;
}
else
tam = ult+1;
}
}
//Heap SORT
public void HeapSort(int n){
for (int i=n/2-1;i>=0;--i)
Mover(i,n-1);
for(int i=n-1;i>=1;--i){
Trocar(0,i);
Mover(0,i-1);
}
}
}
[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Reifel[/color][/size] :joia: