#include #include class ARREGLO { public: void leer(float Arreglo[], int num); void imprimir(float arreglo[], int n); void imprimir2(float arreglo[], int n); void Leer(char arreglo[], int num); void Imprimir(char arreglo[], int num); void Imprimir2(char arreglo[], int num); void intercambio(float* x, float* y); void Intercambio(char* x, char* y); }; void ARREGLO::leer(float Arreglo[], int num) { int i; for(i=0;i>Arreglo[i]; } } void ARREGLO::imprimir(float arreglo[], int n) { int i; for(i=0;i=0;i--) { cout<<"["<>arreglo[i]; } } void ARREGLO::Imprimir(char arreglo[], int n) { int i; for(i=0;i=0;i--) { cout<<"["<0;i--) for(j=0;ja[j+1]) intercambio(&a[j],&a[j+1]); } void BURBUJA::Burbuja(char a[], int n) { int i,j; for(i=n-1;i>0;i--) for(j=0;ja[j+1]) Intercambio(&a[j],&a[j+1]); } //**************************************** //CLASE METODO DE ORDENAMIENTO INSERCION //**************************************** class INSERCION:public ARREGLO { public: void insercion(float arreglo[], int n); void Insercion(char arreglo[], int n); }; void INSERCION::insercion(float arreglo[], int n) { int i,k,x; for(i=0;i=0)&&(x=0)&&(x=right) return; swap(arreglo,left,(left+right)/2); last=left; for(current=left+1;current<=right;current++) if(arreglo[current]=right) return; Swap(arreglo,left,(left+right)/2); last=left; for(current=left+1;current<=right;current++) if(arreglo[current]0) { for(i=salto;i=0) { k=j+salto; if(arreglo[j]<=arreglo[k]) { j=0; } else { temp=arreglo[j]; arreglo[j]=arreglo[k]; arreglo[k]=temp; } j=j-salto; } } salto=salto/2; } } //fin del shell void SHELL::Shell(char arreglo[],int n) { int i,j,k,salto; char temp; salto=n/2; while(salto>0) { for(i=salto;i=0) { k=j+salto; if(arreglo[j]<=arreglo[k]) { j=0; } else { temp=arreglo[j]; arreglo[j]=arreglo[k]; arreglo[k]=temp; } j=j-salto; } } salto=salto/2; } } //fin del shell //*********************************************** // CLASE METODO DE BUSQUEDA SECUENCIAL O LINEAL //*********************************************** class SECUENCIAL:public ARREGLO { public: int secuencial(float arreglo[],float buscar, int n); int Secuencial(char arreglo[],char buscar, int n); }; int SECUENCIAL::secuencial(float arreglo[],float buscar, int n) { for(int i=0;i>orden; switch(orden) { case 1: clrscr(); cout<<"\t\t ***********************************\n"; cout<<"\t\t * ORDENAMIENTO METODO SELECCION *\n"; cout<<"\t\t ***********************************\n\n"; cout<<"Tipo de dato:\n\t\t1.-Numerico\t\t\t2.-Caracter\n"; cin>>caso; switch(caso) { case 1: cout<<"Numero de datos a introducir:"; cin>>num; num1.leer(Ar,num); cout<<"\nARREGLO DESORDENADO:\n"; num1.imprimir(Ar,num); num1.seleccion(Ar,num); cout<<"\n\nORDENACION ASCENDENTE: \n"; num1.imprimir(Ar,num); cout<<"\n\nORDENACION DESCENDENTE: \n"; num1.imprimir2(Ar,num); break; case 2: cout<<"Numero de datos a introducir: "; cin>>num; num1.Leer(ar,num); cout<<"\nARREGLO DESORDENADO: \n"; num1.Imprimir(ar,num); num1.Seleccion(ar,num); cout<<"\n\nORDENACION ASCENDENTE: \n"; num1.Imprimir(ar,num); cout<<"\n\nORDENACION DESCENDENTE: \n"; num1.Imprimir2(ar,num); break; default: cout<<"\nOpcion no valida\n"; break; } break; case 2: clrscr(); cout<<"\t\t *******************************\n"; cout<<"\t\t * ORDENACION METODO BURBUJA *\n"; cout<<"\t\t *******************************\n\n"; cout<<"Tipo de dato:\n\t\t1.-Numerico\t\t\t2.-Caracter\n"; cin>>caso; switch(caso) { case 1: cout<<"Numero de datos a introducir:"; cin>>num; num2.leer(Ar,num); cout<<"\nARREGLO DESORDENADO: \n"; num2.imprimir(Ar,num); num2.burbuja(Ar,num); cout<<"\n\nORDENACION ASCENDENTE: \n"; num2.imprimir(Ar,num); cout<<"\n\nORDENACION DESCENDENTE: \n"; num2.imprimir2(Ar,num); break; case 2: cout<<"Numero de datos a introducir:"; cin>>num; num2.Leer(ar,num); cout<<"\nARREGLO DESORDENADO: \n"; num2.Imprimir(ar,num); num2.Burbuja(ar,num); cout<<"\n\nORDENACION ASCENDENTE: \n"; num2.Imprimir(ar,num); cout<<"\n\nORDENACION DESCENDENTE: \n"; num2.Imprimir2(ar,num); break; default: cout<<"\nOpcion no valida\n"; break; } break; case 3: clrscr(); cout<<"\t\t *********************************\n"; cout<<"\t\t * ORDENACION METODO INSERCION *\n"; cout<<"\t\t *********************************\n\n"; cout<<"Tipo de dato:\n\t\t1.-Numerico\t\t\t2.-Caracter\n"; cin>>caso; switch(caso) { case 1: cout<<"Numero de datos a introducir:"; cin>>num; num3.leer(Ar,num); cout<<"\nARREGLO DESORDENADO: \n"; num3.imprimir(Ar,num); num3.insercion(Ar,num); cout<<"\n\nORDENACION ASCENDENTE: \n"; num3.imprimir(Ar,num); cout<<"\n\nORDENACION DESCENDENTE: \n"; num3.imprimir2(Ar,num); break; case 2: cout<<"Numero de datos a introducir:"; cin>>num; num3.Leer(ar,num); cout<<"\nARREGLO DESORDENADO: \n"; num3.Imprimir(ar,num); num3.Insercion(ar,num); cout<<"\n\nORDENACION ASCENDENTE: \n"; num3.Imprimir(ar,num); cout<<"\n\nORDENACION DESCENDENTE: \n"; num3.Imprimir2(ar,num); break; default: cout<<"\nOpcion no valida\n"; break; } break; case 4: clrscr(); cout<<"\t\t *********************************\n"; cout<<"\t\t * ORDENACION METODO QUICKSORT *\n"; cout<<"\t\t *********************************\n\n"; cout<<"Tipo de dato:\n\t\t1.-Numerico\t\t\t2.-Caracter\n"; cin>>caso; switch(caso) { case 1: cout<<"Numero de datos a introducir:"; cin>>num; num4.leer(Ar,num); cout<<"\nARREGLO DESORDENADO: \n"; num4.imprimir(Ar,num); num4.quicksort(Ar,0,num-1); cout<<"\n\nORDENACION ASCENDENTE: \n"; num4.imprimir(Ar,num); cout<<"\n\nORDENACION DESCENDENTE: \n"; num4.imprimir2(Ar,num); break; case 2: cout<<"Numero de datos a introducir:"; cin>>num; num4.Leer(ar,num); cout<<"\nARREGLO DESORDENADO: \n"; num4.Imprimir(ar,num); num4.Quicksort(ar,0,num-1); cout<<"\n\nORDENACION ASCENDENTE: \n"; num4.Imprimir(ar,num); cout<<"\n\nORDENACION DESCENDENTE: \n"; num4.Imprimir2(ar,num); break; default: cout<<"\nOpcion no valida\n"; break; } break; case 5: clrscr(); cout<<"\t\t *****************************\n"; cout<<"\t\t * ORDENACION METODO SHELL *\n"; cout<<"\t\t *****************************\n\n"; cout<<"Tipo de dato:\n\t\t1.-Numerico\t\t\t2.-Caracter\n"; cin>>caso; switch(caso) { case 1: cout<<"Numero de datos a introducir:"; cin>>num; num5.leer(Ar,num); cout<<"\nARREGLO DESORDENADO: \n"; num5.imprimir(Ar,num); num5.shell(Ar,num); cout<<"\n\nORDENACION ASCENDENTE: \n"; num5.imprimir(Ar,num); cout<<"\n\nORDENACION DESCENDENTE: \n"; num5.imprimir2(Ar,num); break; case 2: cout<<"Numero de datos a introducir:"; cin>>num; num5.Leer(ar,num); cout<<"\nARREGLO DESORDENADO: \n"; num5.Imprimir(ar,num); num5.Shell(ar,num); cout<<"\n\nORDENACION ASCENDENTE: \n"; num5.Imprimir(ar,num); cout<<"\n\nORDENACION DESCENDENTE: \n"; num5.Imprimir2(ar,num); break; default: cout<<"\nOpcion no valida\n"; break; } break; case 6: clrscr(); cout<<"\t\t **********************************\n"; cout<<"\t\t * BUSQUEDA SECUENCIAL O LINEAL *\n"; cout<<"\t\t **********************************\n\n"; cout<<"Tipo de dato:\n\t\t1.-Numerico\t\t\t2.-Caracter\n"; cin>>caso; switch(caso) { case 1: cout<<"Numero de datos a introducir:"; cin>>num; num6.leer(Ar,num); cout<<"\nMetodos para ordenar el arreglo"<>metodos; switch(metodos) { case 1: num1.seleccion(Ar,num); break; case 2: num3.insercion(Ar,num); break; case 3: num2.burbuja(Ar,num); break; case 4: num4.quicksort(Ar,0,num-1); break; case 5: num5.shell(Ar,num); break; default: cout<<"Opcion no valida"<>bus; ubic=(num6.secuencial(Ar,bus,num)); if(ubic!=-1) cout<>num; num6.Leer(ar,num); cout<<"\nMetodos para ordenar el arreglo"<>metodos; switch(metodos) { case 1: num1.Seleccion(ar,num); break; case 2: num3.Insercion(ar,num); break; case 3: num2.Burbuja(ar,num); break; case 4: num4.Quicksort(ar,0,num-1); break; case 5: num5.Shell(ar,num); break; default: cout<<"Opcion no valida"<>busc; ubic=(num6.Secuencial(ar,busc,num)); if(ubic!=-1) cout<>caso; switch(caso) { case 1: cout<<"Numero de datos a introducir:"; cin>>num; num7.leer(Ar,num); cout<<"\nMetodos para ordenar el arreglo"<>metodos; switch(metodos) { case 1: num1.seleccion(Ar,num); break; case 2: num3.insercion(Ar,num); break; case 3: num2.burbuja(Ar,num); break; case 4: num4.quicksort(Ar,0,num-1); break; case 5: num5.shell(Ar,num); break; default: cout<<"Opcion no valida"<>bus; ubic=(num7.binario(Ar,bus,0,num-1)); if(ubic!=-1) cout<>num; num6.Leer(ar,num); cout<<"\nMetodos para ordenar el arreglo"<>metodos; switch(metodos) { case 1: num1.Seleccion(ar,num); break; case 2: num3.Insercion(ar,num); break; case 3: num2.Burbuja(ar,num); break; case 4: num4.Quicksort(ar,0,num-1); break; case 5: num5.Shell(ar,num); break; default: cout<<"Opcion no valida"<>busc; ubic=(num7.Binario(ar,busc,0,num-1)); if(ubic!=-1) cout<>opc; }while(opc=='s'); cout<<"\n\t\t\t Presione una tecla para continuar"<