Professional Documents
Culture Documents
Codigo Lamas
Codigo Lamas
Codigo Lamas
import java.io.*;
import java.util.Random;
/**
*
* @author GAPC27
*/
public class mier {
public void seldir(int a[]){
int com=0,cam=0;
//for (int b=1; b<=a.length; b++)
///
{
for (int i = 0; i < a.length - 1; i++) {
int men = i;
for (int j = i+1; j < a.length; j++) {
if (a[j] < a[men]){
men = j;
cam++;
}
}
int aux = a[i];
a[i] = a[men];
a[men] = aux;
com++;
}//}
System.out.println("Comparaciones: "+(com+cam)+"
Cambios: "+cam);
}
public static void main(String[] args) throws IOException {
BufferedReader entrada = new BufferedReader (new InputStreamReader(Syst
em.in));
int op = 0;
String linea="",q;
Random rnd = new Random();
int a[] = new int [1000];
// int a[] = {23,12,34,56,75,34,21,1,3,2};
int ini =0,fin = a.length-1,cam =0,com=0;
Main ordenar = new Main();
do {
System.out.println();
System.out.println("Menu SelDir\n1. Insertar\n2. Mostrar\n3.Seleccio
n directa\n4. Quicksort\n5. burbuja\n6. ShellSort\n7. Insercion directa\n8. Sali
r\ncapturar opcion: ");
op = Integer.parseInt(entrada.readLine());
switch(op){
case 1:{
for (int i=0;i<a.length;i++)
{
a[i]=(int)(rnd.nextDouble()*100.0);
linea+=a[i]+"\t";
}
}break;
case 2:{
for (int i=0;i<a.length;i++)
{
System.out.print(a[i]+"\t");
}
System.out.print("\n");
}break;
case 3:{
long start = System.currentTimeMillis();
ordenar.seldir(a);
ordenar.imprimir(a);
long end = System.currentTimeMillis();
long res = end - start;
System.out.println("Milisegundos: "+res);
start = 0;
end = 0;
res = 0;
}break;
case 4:
{long start = System.currentTimeMillis();
q = ordenar.reducerecursivo(ini, fin, a,cam,com);
System.out.println(q);
ordenar.imprimir(a);
long end = System.currentTimeMillis();
long res = end - start;
System.out.println("Milisegundos: "+res);
start = 0;
end = 0;
res = 0;
}
break;
case 5:
{
long start = System.currentTimeMillis();
ordenar.burbuja( a);
ordenar.imprimir(a);
long end = System.currentTimeMillis();
long res = end - start;
System.out.println("Milisegundos: "+res);
start = 0;
end = 0;
res = 0;
}
break;
case 6:
{
long start = System.currentTimeMillis();
ordenar.ShellSort(a);
ordenar.imprimir(a);
long end = System.currentTimeMillis();
long res = end - start;
System.out.println("Milisegundos: "+res);
start = 0;
end = 0;
res = 0;
}
break;
case 7:
{
long start = System.currentTimeMillis();
ordenar.insercionDirecta(a);
ordenar.imprimir(a);
long end = System.currentTimeMillis();
long res = end - start;
System.out.println("Milisegundos: "+res);
start = 0;
end = 0;
res = 0;
}
break;
}
}while (op!=8);
}
public void imprimir(int a[]){
for (int i = 0; i < a.length; i ++){
System.out.print(a[i] + "\t");
}
System.out.println();
}
cam++;
aux =a[pos];
a[pos]=a[der];
a[der]=aux;
pos=der;
while((a[pos]>=a[izq])&&(pos!=izq))
izq++;
if(pos!=izq){
cam++;
band= 1;
aux =a[pos];
a[pos]=a[izq];
a[izq]=aux;
pos=izq;
}
}com++;
if((pos-1)>ini)
reducerecursivo(ini,(pos-1),a,cam,com);
com++;
if(fin>(pos+1))
reducerecursivo((pos+1),fin,a,cam,com);
com++;
}
return "Comparaciones: "+(com+cam)+" Cambios: "+cam;
}
Cambios: "+cam);
Cambios: "+cam);
}
public void insercionDirecta(int a[]){
int aux, k, n=a.length,com=0,cam=0;
int i;
for (i=1;i<n;i++){
aux = a[i];
k=i-1;
while ((k>=0)&&(aux<a[k])){
// System.out.println("se cambio "+a[k+1]+"
a[k+1]=a[k];
k=k-1;
cam++;
}
com++;
a[k+1]=aux;
}
System.out.println("Comparaciones: "+(com+cam)+"
}
con: "+a[k]);
Cambios: "+cam);