martes, 10 de noviembre de 2009

Análisis y Diseño de Algoritmos

//Busqueda binaria c++ por Julio Anchiraico Trujillo

#include
#include
#include
#include //tiene la definicion de la funcion RAND (random)
#include //para el reloj
#define MAX 10000

void mostrarArreglo(int[], int); //prototipo de funcion que recibe un arreglo constante
void ordenarArreglo(int[], int); //prototipo que modifica y ordena el arreglo
void intercambiar(int&, int&); //prototipo, intercambia los valores de dos elementos

int busquedaBinaria(int arreglo[], int prim, int ult, int clave)
{ int mitad;
while (prim<=ult) { mitad=(prim+ult)/2; if(arreglo[mitad]==clave) return mitad; else { if (clave=ult)
return -1;
else
{ mitad=(prim+ult)/2;
if(arreglo[mitad]==clave)
return mitad;
else
{ if (clave> clave;

tinicio=clock(); //activando el inicio del reloj
cout<< "\n No recursivo - Su valor se encuentra en arreglo["< arreglo[j+1])
intercambiar(arreglo[j],arreglo[j+1]);
}
void intercambiar(int &a, int &b)
{ int tmp = b;
b = a;
a = tmp;
}


//Serie de Fibonacci c++

#include
#include
#include
long fibo(long num)
{ if(num==0 num==1)
{ return num;}
else
{ return fibo(num-1) + fibo(num-2); }
}

long fibo2(long num)
{ long n1,n2,n3,i;
if(num==0 num==1)
{ return num;}
else
{ n1=0;
n2=1;
for(i=2;i<=num;i++) { n3=n1+n2; n1=n2; n2=n3; } return n3; } } void main() { long numf1,numf2,numero; double ttrans,ttrans1; cout<<"ingrese el numero de termino fibonacci: \n"; cin>>numero;
clock_t tinicio;
tinicio=clock(); //activando el inicio del reloj
numf1=fibo(numero);
ttrans=(clock()-tinicio)/(double)CLOCKS_PER_SEC;

tinicio=clock(); //activando el inicio del reloj
numf2=fibo2(numero);
ttrans1=(clock()-tinicio)/(double)CLOCKS_PER_SEC;

cout<<"el termino numero "<cout<<"y toma un tiempo de "<cout<<"el termino numero "<cout<<"y toma un tiempo de "<getch();
}



//Multiplicación de enteros largos c++

#include
#define MAX 100
//#define max 4
//#define maxR 2*max
using namespace std;
typedef int vector[MAX];
void escribirNumero(int n1[],int n);
void resta(int x[],int y[],int r[]);
void suma(int x[],int y[],int r[]);
int longNumero(int x[]);
void desplazar(int x[],int espacios);
int longMinino(int x[],int y[]);
void ceros(int x[]);
void producto(int x[],int y[],int r[]);
void copiar(int origen[],int destino[]);
int maxR;
int main(int argc,char *argv[] )
{
int i,num1[MAX],num2[MAX],r[MAX],n;
cout<<"\n Ingrese cantidad de digitos: "; cin>>maxR;
//maxR=maxR*2;
cout<<"Primer digito: \n"; for (i=0;i<=maxR-1;i++) cin>>num1[i];
cout<<"Segundo digito: \n"; for (i=0;i<=maxR-1;i++) cin>>num2[i];
for (i=0;i<=maxR-1;i++) r[i]=0; n=longMinino(num1,num2); cout<<"Primer numero:\n"; escribirNumero(num1,n); cout<<"Segundo numero:\n"; escribirNumero(num2,n); suma(num1,num2,r); cout<<"La suma es:\n";escribirNumero(r,longNumero(r)); resta(num1,num2,r); cout<<"La resta es:\n";escribirNumero(r,n); producto(num1,num2,r); cout<<"El producto es:\n";escribirNumero(r,longNumero(r)); system("PAUSE"); return EXIT_SUCCESS; } void escribirNumero(vector x,int n) { int i; for(i=maxR-n;i=0;i--){
if (x[i]>=y[i]+a){
r[j]=x[i]-y[i]-a;
a=0;
}
else{
r[j]=x[i]+2-y[i]-a;
a=1;
}
j--;
}
}
void suma(vector x,vector y,vector r){
int i,j,a=0; int n;
n=longMinino(x,y);
ceros(r);
j=maxR-1;
for(i=maxR-1;i>=maxR-n;i--){
r[j]=x[i]+y[i]+a;
if (r[j]>=2){
a=r[j]/2;//calcula acarreo
r[j]=r[j]%2;//halla lo que se queda
}
else a=0;
j--;
}
if(a!=0 && j<0 i="0;" c="1;c<=espacios;c++){" n1cifras="longNumero(x);" n2cifras="longNumero(y);" cifrasmayor="n1Cifras">n2Cifras?n1Cifras:n2Cifras;
n=1;
while(cifrasMayor>n) n=n*2;
return n; }
void producto(vector x,vector y,vector r)
{ int i,j,k; int n1,n2,c;
int parcial[MAX];
int prod[MAX];
ceros(r); ceros(prod);
n1=longNumero(x); n2=longNumero(y);
c=-1;
for(i=maxR-1;i>=maxR-n2;i--){
c=c+1;
if(y[i]!=0){
ceros(parcial);
k=maxR-1;
for(j=maxR-1;j>=maxR-n1;j--){
parcial[k]=y[i]*x[j];
k--;
}
desplazar(parcial,c);
suma(prod,parcial,r);
copiar(r,prod);
}
}
}
void ceros(vector x)
{ int i;
for(i=0;ivoid copiar(vector origen,vector destino)
{ int i;
for(i=0;i}

Instalar Oracle 11g XE en Ubuntu

La instalación de Oracle 11g Express Edition  se ha realizado en una máquina virtual Ubuntu para lo cual se ha utilizado lo siguiente: Virt...