Anda di halaman 1dari 4

Análisis de Algoritmos Jorge Iván Triviño Arbelaez

ESCUELA DE ADMINISTRACION Y MERCADOTECNIA DEL QUINDIO


PROGRAMA DE INGENIERÍA DE SOFTWARE

1. Halle el Tiempo de Ejecución T(n) y el O(n) del siguiente ejercicio: (2 unidades)

MÉTODO
public class Parcial {

public int metodo1(int[] array){ 1


int temp=0; 1
int temp2=array.length; 1
for (int i = 0; i < array.length; i++) { 1+n+1+n
for(int j=0; j<array.length;j++){
if(temp2<temp && temp<=j){ 5n
temp+=array[i]%10;
temp+=array[i]/10;
continue;
}
else{
temp+=array[j]; 1
break;
}
}
}
return temp; T(n) = 7n+6
} O(Tn) = n

1
public int metodo2(int[] array){ 2
int temp=0, aux=3; 1
int t = array.length; 1+n+1+n
for (int i = 0; i < t; i++) { n
if(array[i]>aux){
temp+=array[i]%10;
temp+=array[i]/10;
continue;
}
else{
temp+=array[i]; 1+log3n+ 1+ log3n
for(i = 10; num<t; i++)
{
contador+= (num%i);
num*=aux;
if(temp%2!=0)
num*=2;
else
{ 4log3n
Continue; 6log3n + 2
temp++;
}
}
}
} 1
return temp; T(n) = 6nlog3n+6n+7
} O(Tn) = nlog3n
public static void main(String[] args) throws
IOException {
// TODO Auto-generated method stub 1
BufferedReader tecla= new BufferedReader(new 7
InputStreamReader(System.in));
Parcial parcial = new Parcial();
System.out.println("Ingrese el tamaño del
arreglo");
Random random = new Random ();
int tamano= Integer.parseInt(tecla.readLine()),
resultado;
int [] array = new int [tamano];
//Creacion array
int i=2; 4
do{
i-=2;
array[i]= random.nextInt(100);
if(i<tamano+2)
break;
i+=2; 1
}while(true); 6nlog3n+6n+7
if(array.length<1000)
parcial.metodo1(array);
else T(n) = 6nLog3n+6n+20
parcial.metodo2(array);
}
}

1
Análisis de Algoritmos Jorge Iván Triviño Arbelaez

(0.5 unidades) Tmetodo1(n)= T(n) = 7n+6

(0.5 unidades) Tmetodo2(n)= T(n) = 6nlog3n+6n+7

T(n) = 6nLog3n+6n+20
(1 unidad) Tfinal (n)=
(valor 0.5)complejidad del main O(n)= Nlog3n

2. Halle el Tiempo de Ejecución el O(n) del siguiente ejercicio: (1.5 unidades)

MÉTODO
public class Parcial {

public int metodo1(int dat, int n){ 2


int temp=0, aux=0; 2
if (dat<n)
for (int i = 0; i < n; i++) {
for(int j=0; j<n; j++){
if(dat>n){
temp+=dat+1;
dat+=temp;
aux=i;
continue;
}
else{
temp+=dat+1;
break;

}
}
}
else
while( aux < n)
temp++;
return temp;
}

public int metodo2(int dat, int n){


int temp=0, aux=0;
for (int i = 0; i <= n-1; i++) {
for(int j=0; j<= n-1;j++){
if(dat<n){
temp+=dat+1;
}
else{
temp+=dat-1;
dat+=temp;
aux=i;
}
}
}
return temp;
}

public static void main(String[] args){


int [] array = new int [n];
int resultado;

for(int i=0;i<n;i++){
if(array[i]>(n*n)){

parcial.metodo2(array[i], n);
}
else{

parcial.metodo1(array[i], n);
}

}
}

2
Análisis de Algoritmos Jorge Iván Triviño Arbelaez

(0.5 unidades) Tmetodo1 O(n)=

(0.5 unidades) Tmetodo2 O(n)=

(1 unidad) Tfinal O (n)=


O(n)=

3
Análisis de Algoritmos Jorge Iván Triviño Arbelaez

AYUDAS

CICLO COMPARACIONES INGRESO AL CICLO


for( i = 0 ; i < n ; i++ ) n+1 n
for( i = 0 ; i <= n ; i++ ) (n+1)+1 = n+2 n+1
for( i = a ; i < n ; i++ ) (n+1)- a n-a
Si a=3 Si a=3
n+1-3 = n-2 n-3
for( i = a ; i <= n ; i++ ) (n+2)-a (n+1)-a
Si a=3 Si a=3
n+2-3 = n-1 n+1-3 = n-2
for( i = 0 ; i < n ; i+=k ) n/k + 1 n/k
for( i = j ; i < n ; i+=k) (n-j)/k +1 (n-j)/k
for( i = 1 ; i < n ; i*=2) log2n + 1 log2n
for( i = n ; i >0 ; i/=2 ) log2n + 2 log2n + 1

Anda mungkin juga menyukai