Está en la página 1de 9

Métodos

de Ordenación y Búsqueda

Jairo Martínez Banda

Romario Quiroz Chaverra Emiro Manjares Herrera José Fernando Morales Altamiranda

Ing. De sistemas

Corporación Universitaria del Caribe CECAR

2012

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)

Introducción:

Ordenar significa reagrupar o reorganizar un conjunto de datos u objetos en una secuencia especifica. Los procesos de ordenación y búsqueda son frecuentes en nuestra vida. Vivimos en un mundo desarrollado en donde cada vez se hace más indispensable de

contar con información actualizada y oportuna para

realizar

ciertas tareas o bien tomar decisiones, es por ello que el ordenamiento de datos es indispensable para lograr una búsqueda más eficiente y que la información esté lista en el momento que se precise utilizarse es por esta razón que en el presente trabajo se dará a conocer algunos de los métodos de

ordenamiento que son utilizados para esta labor, se observara su funcionamiento en base a qué tan eficiente son para el

ordenamiento de datos, la velocidad con que operan practicidad de su implementación.

y la

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)

Conclusión

En el anterior trabajo aprendimos a ordenar y buscar las

diferentes informaciones.

Así podemos decir que son muy

importantes estos métodos ya que nos ahorra mucho tiempo a la hora de estar ordenando y estar buscando cualquier información

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)

Codigo fuente

#include <condefs.h> #include<iostream.h> #include<conio.h> #include<stdlib.h> #include<ctime.h> #include <dos.h> /// c_ele(comparaciones) i_ele(intercambios) c_bs (busqueda secuencial) c_bb(busqueda binaria) // int i, c_Ele, i_Ele, c_BS, c_BB; bool c_VecAle(int v_Ale[], int n_Ele); void i_Vec(int v_Dig[], int n_Ele); void o_VecInsDir(int v_Api[], int n_Ele); void m_VecOrd(int v_Ord[], int n_Ele); int e_BusSec(int v_Abs[], int n_Ele, int clave); int e_BusBin(int v_Abb[], int n_Ele, int clave);

bool c_VecAle(int v_Ale[], int n_Ele){ for(int i=0; i<10; i++) if(v_Ale[i]==n_Ele) return true; return false;

}

void i_Vec(int v_Dig[], int n_Ele){ for(int i=0; i<n_Ele; i++){

cprintf("\n-> Ingrese el elemento Nro. %i", (i+1)); cprintf(" del vector "); cin>>v_Dig[i];

}

}

void o_VecInsDir(int v_Api[], int n_Ele){ int j, aux;

c_Ele=0;

for(int i=0; i<n_Ele; i++){ aux=v_Api[i];

j=i-1;

i_Ele=0;

while(j>=0&&aux<v_Api[j]){

v_Api[j+1]=v_Api[j];

j--;

i_Ele=i_Ele++;

}

v_Api[j+1]=aux;

c_Ele=c_Ele++;

}

}

void m_VecOrd(int v_Ord[], int n_Ele){ for(int i=0; i<n_Ele; i++){

sleep(1);

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)

cprintf("%i ", v_Ord[i]);

}

}

int e_BusSec(int v_Abs[], int n_Ele, int clave){

c_BS=0;

for(i=0; i<=n_Ele-1 ;i++){ c_BS++; if(clave==v_Abs[i]) return i;

}

cprintf("El elemento digitado no fue encontrado en el sistema

}

!");

int e_BusBin(int v_Abb[], int n_Ele, int clave){ int central, bajo=0, alto=n_Ele-1, valorCentral;

c_BB=0;

while(bajo<=alto){ c_BB++;

central=(bajo+alto)/2;

valorCentral=v_Abb[central]; if(clave == valorCentral) return central; // Encontrado, devuelve posición. else if(clave<valorCentral)

alto=central-1;

else

bajo=central+1;

}

return -1; // Elemento no encontrado.

}

void main(){ int v_Dig[100], v_Ale[100], m, n_Ale, n_Dig, o_Pri, j, e_Bus, p_Ele; do{ textbackground(BLACK); textcolor(LIGHTBLUE); clrscr(); for(int i=1; i<26; i++){

Sleep(50);

gotoxy(9,i); cprintf("*"); gotoxy(71,i); cprintf("*");

}

for(int i=1; i<80; i++){

Sleep(25);

gotoxy(i, 1); cprintf("*");

gotoxy(i, 25); cprintf("*");

}

gotoxy(24, 4); cprintf("Metodos De Ordenacion Y Busqueda"); gotoxy(12, 7); cprintf("Aplicar"); gotoxy(12, 8); cprintf("(1) Insercion Directa a vector creado de forma aleatoria."); gotoxy(12, 9); cprintf("(2) Insercion Directa a vector digitado en sistema. "); gotoxy(12, 11); cprintf("(3) Busqueda Secuencial al vector aleatorio anterior.");

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)

gotoxy(12, 12); cprintf("(4) Busqueda Binaria al vector generado por sistema."); gotoxy(12, 13); cprintf("(5) Busqueda Secuencial al vector digitado."); gotoxy(12, 14); cprintf("(6) Busqueda Binaria al vector digitado.");

gotoxy(12, 17); cprintf("(7) Salir."); gotoxy(16, 21); cprintf("Digite el numero de la accion que desea realizar "); cin>>o_Pri; clrscr(); switch(o_Pri){ case 1:{ textbackground(GREEN); textcolor(YELLOW); clrscr(); gotoxy(2, 2); cprintf("Digite el numero de elementos del vector "); cin>>n_Ale; cout<<endl; cprintf("->Generando vector con numeros aleatorios del 0 al 99 sin repetir. "); for(int i=0; i<12; i++){ //decoracion >>>>>> cargando ///////////////////////////////////////////////////////////////////// ////////// gotoxy(68+i, 4); cprintf("%c", 175); Sleep(50);

}

textcolor(2);

for(int i=0; i<12; i++){

gotoxy(68+i, 4); cprintf("%c", 175); Sleep(50);

}

textcolor(LIGHTBLUE); for(int i=0; i<12; i++){ gotoxy(68+i, 4); cprintf("%c", 175); Sleep(50);

}

textcolor(2);

for(int i=0; i<12; i++){

gotoxy(68+i, 4); cprintf("%c", 175); Sleep(50);

}

textcolor(LIGHTRED); for(int i=0; i<12; i++){

gotoxy(68+i, 4); cprintf("%c", 175); Sleep(50);

}

textcolor(2);

for(int i=0; i<12; i++){ gotoxy(68+i, 4); cprintf("%c", 175); Sleep(50);

}

textcolor(YELLOW); //////////////////////////////////////////////////////////////////////////////////////////// cout<<endl; cout<<endl; cprintf("Vector generado por el sistema: "); srand(time(NULL)); for(int i=0; i<n_Ale; i++){ do

m=rand()%100;

while(c_VecAle(v_Ale, m)); v_Ale[i]=m; cprintf("%i ", v_Ale[i]);

sleep(1);

}

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)

cout<<endl; cout<<endl; cprintf("Ordenado por medio de insercion directa nos queda: "); o_VecInsDir(v_Ale, n_Ale); m_VecOrd(v_Ale, n_Ale); cout<<endl; cout<<endl; sleep(1); cprintf(" Numero de comparaciones realizados en el vector anterior: %i", c_Ele);

cout<<endl; cout<<endl; sleep(1); cprintf(" Numero de intercambios que se realizo en el vector anterior: %i", i_Ele);

}

/////////////////////////////////////////////////////////////////////////////////////////

break;

case 2:{ textbackground(LIGHTGRAY); textcolor(BLUE); clrscr();

gotoxy(2, 2); cprintf("Digite el numero de elementos del vector "); cin>>n_Dig; i_Vec(v_Dig, n_Dig); cprintf("\nEl vector digitado queda dado de la sig. manera: "); for(int i=0; i<n_Dig; i++){ cprintf("%i ", v_Dig[i]);

}

cout<<endl; cout<<endl; cprintf("Ordenado por medio del metodo de <<LA BARAJA>> nos queda: "); o_VecInsDir(v_Dig, n_Dig); m_VecOrd(v_Dig, n_Dig);

cout<<endl; cout<<endl; sleep(1); cprintf(" Numero de comparaciones realizados en el vector anterior: "); cprintf("%i", c_Ele); cout<<endl; cout<<endl; sleep(1); cprintf(" Numero de intercambios que se realizo en el vector anterior: %i", i_Ele);

}

break; case 3:{ textbackground(LIGHTGRAY); clrscr(); gotoxy(2, 2); textcolor(GREEN); cprintf("Digite el valor <clave> de tipo entero que desea encontrar "); cin>>e_Bus;

p_Ele=e_BusSec(v_Ale, n_Ale, e_Bus); cout<<endl; textcolor(GREEN); cprintf("-> El valor <clave> "); textcolor(YELLOW); cprintf("%i", e_Bus); textcolor(GREEN); cprintf(" Se encuentra en la posicion "); textcolor(YELLOW); cprintf("%i", p_Ele); textcolor(GREEN); cprintf(" del vector "); textcolor(YELLOW); m_VecOrd(v_Ale, n_Ale); cout<<endl;cout<<endl; textcolor(GREEN); cprintf("El numero total de comparaciones que se realizo fue de: "); textcolor(YELLOW); cprintf("%i", c_BS);

}

break; case 4:{ textbackground(LIGHTGRAY);

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)

clrscr(); gotoxy(2, 2); textcolor(GREEN); cprintf("Digite el valor que desea encontrar por medio de la Busqueda Binaria "); cin>>e_Bus; p_Ele=e_BusBin(v_Ale, n_Ale, e_Bus); cout<<endl; textcolor(GREEN); cprintf("-> El valor <clave> "); textcolor(YELLOW); cprintf("%i", e_Bus); textcolor(GREEN); cprintf(" Se encuentra en la posicion "); textcolor(YELLOW); cprintf("%i", p_Ele); textcolor(GREEN); cprintf(" del vector "); textcolor(YELLOW); m_VecOrd(v_Ale, n_Ale); cout<<endl; cout<<endl; textcolor(GREEN); cprintf("El numero total de compaciones que se realizo para encontrar elemento fue de: "); textcolor(YELLOW); cprintf("%i", c_BB);

}

break; case 5:{ textbackground(GREEN); clrscr(); gotoxy(2, 2); cprintf("Digite el valor <clave> de tipo entero que desea encontrar "); cin>>e_Bus; p_Ele=e_BusSec(v_Dig, n_Dig, e_Bus); cout<<endl; textcolor(LIGHTGRAY); cprintf("-> El valor <clave> "); textcolor(BLUE); cprintf("%i", e_Bus); textcolor(LIGHTGRAY); cprintf(" ha sido encontrado en la posicion "); textcolor(BLUE); cprintf("%i", p_Ele); textcolor(LIGHTGRAY); cprintf(" del vector ");

textcolor(BLUE); m_VecOrd(v_Dig, n_Dig); cout<<endl; cout<<endl; textcolor(LIGHTGRAY); cprintf("El numero total de comparaciones que se realizo fue de: "); textcolor(BLUE); cprintf("%i", c_BS);

}

break; case 6:{ textbackground(GREEN); clrscr(); gotoxy(2, 2); cprintf("Digite el valor <clave> de tipo entero que desea encontrar "); cin>>e_Bus; p_Ele=e_BusBin(v_Dig, n_Dig, e_Bus); cout<<endl; textcolor(LIGHTGRAY); cprintf("-> El valor <clave> ");

textcolor(BLUE); cprintf("%i", e_Bus); textcolor(LIGHTGRAY); cprintf(" ha sido encontrado en la posicion "); textcolor(BLUE); cprintf("%i", p_Ele); textcolor(LIGHTGRAY); cprintf(" del vector "); textcolor(BLUE); m_VecOrd(v_Dig, n_Dig); cout<<endl;cout<<endl; textcolor(LIGHTGRAY); cprintf("El numero total de comparaciones que se realizo fue de: "); textcolor(BLUE); cprintf("%i", c_BB);

}

break;

case 7:

exit(1);

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)

default:{

textbackground(BLACK);

textcolor(LIGHTRED);

clrscr(); gotoxy(10, 10); cprintf("La opcion ingresada es invalida

}

}

getche();

} while(true);

getch();

return;

}

!

");

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)