public static void main(String[ ] args) {
int [ ] size = {100, 1000, 10000};
long [ ] tiempos= new long [4*size.length];
CronometraAccesoArray CAA= new CronometraAccesoArray(1);
CronometraAccesoLista CAL= new CronometraAccesoLista(1);
CronometraCreacionArray CCA= new CronometraCreacionArray(1);
CronometraCreacionLista CCL= new CronometraCreacionLista(1);
Temporizador t = new Temporizador(5);
for(int i=0;i < size.length;i++){
CCA.setTamañoArray(size[ i]);
CCL.setTamañoLista(size[ i]);
CAA.setArray(size[ i]);
CAL.setLista(size[ i]);
t.cronometra(CCA);
tiempos[ 4*i]=t.getTiempoMinimo();
t.cronometra(CCL);
tiempos[ 4*i+1]=t.getTiempoMinimo();
t.cronometra(CAA);
tiempos[ 4*i+2]=t.getTiempoMinimo();
t.cronometra(CAL);
tiempos[ 4*i+3]=t.getTiempoMinimo();
}
for(int i=0;i < size.length;i++){
System.out.println("Tiempo de creacion array de "+size[ i]+" elementos, es: "+tiempos[ 4*i]+" ns");
System.out.println("Tiempo de creacion lista de "+size[ i]+" elementos, es: "+tiempos[ 4*i+1]+" ns");
System.out.println("Tiempo de acceso array de "+size[ i]+" elementos, es: "+tiempos[ 4*i+2]+" ns");
System.out.println("Tiempo de acceso lista de "+size[ i]+" elementos, es: "+tiempos[ 4*i+3]+" ns");
}
}
}
public class CronometraAccesoArray implements EstrategiaSolucion {
private int n;
private int[ ] array;
private int aux;
public CronometraAccesoArray(int n){
this.n=n;
this.array=new int[ this.n];
this.aux=(int)this.n/2;
if(this.n%2 == 0)
this.aux++;
for(int i=0;i < n;i++)
this.array[ i]=i;
}
public void setArray(int n){
this.n=n;
this.array=new int[ this.n];
this.aux=(int)this.n/2;
if(this.n%2 == 0)
this.aux++;
for(int i=0;i < n;i++)
this.array[ i]=i;
}
@Override
public void procesamientoFinal() {
// TODO Auto-generated method stub
}
@Override
public void procesamientoInicial() {
// TODO Auto-generated method stub
}
@Override
public void solucion() {
// TODO Auto-generated method stub
System.out.print(this.array[ 0]+", ");
for(int i=1;i < this.aux;i++){
System.out.print(this.array[ this.n-i]+", ");
if(!((this.n-i)==i))
System.out.print(this.array[ i]+", ");
}
System.out.println("]");
}
}
public class CronometraAccesoLista implements EstrategiaSolucion{
private int n;
private LinkedList
private int aux;
public CronometraAccesoLista(int n){
this.n=n;
this.lista=new LinkedList
this.aux=(int)this.n/2;
if(this.n%2 == 0)
this.aux++;
for(int i=0;i < n;i++)
this.lista.add(i);
}
public void setLista(int n){
this.n=n;
this.lista = new LinkedList
this.aux=(int)this.n/2;
if(this.n%2 == 0)
this.aux++;
for(int i=0;i < n;i++)
this.lista.add(i);
}
@Override
public void procesamientoFinal() {
// TODO Auto-generated method stub
}
@Override
public void procesamientoInicial() {
// TODO Auto-generated method stub
}
@Override
public void solucion() {
// TODO Auto-generated method stub
System.out.print("["+this.lista.get(0)+", ");
for(int i=1;i < this.aux;i++){
System.out.print(this.lista.get(n-i)+", ");
if(!((this.n-i)==i))
System.out.print(this.lista.get(i)+", ");
}
System.out.println("]");
}
}
public class CronometraCreacionArray implements EstrategiaSolucion {
private int n;
public CronometraCreacionArray(int n){
this.n=n;
}
public int getTamañoArray(){
return this.n;
}
public void setTamañoArray(int n){
this.n=n;
}
@Override
public void procesamientoFinal() {
// TODO Auto-generated method stub
}
@Override
public void procesamientoInicial() {
// TODO Auto-generated method stub
}
@Override
public void solucion() {
// TODO Auto-generated method stub
int [ ] array= new int[ this.n];
for(int i=0;i < n;i++)
array[ i]=i;
}
}
public class CronometraCreacionLista implements EstrategiaSolucion{
private int n;
public CronometraCreacionLista(int n){
this.n=n;
}
public int getTamañoLista(){
return this.n;
}
public void setTamañoLista(int n){
this.n=n;
}
@Override
public void procesamientoFinal() {
// TODO Auto-generated method stub
}
@Override
public void procesamientoInicial() {
// TODO Auto-generated method stub
}
@Override
public void solucion() {
// TODO Auto-generated method stub
LinkedList< Integer> l=new LinkedList< Integer>();
for(int i=0;i < n;i++)
l.add(i);
}
}

No hay comentarios:
Publicar un comentario