Páginas

sábado, 24 de noviembre de 2012

Un cuento hecho en Youblisher.

Youblisher es una herramienta, que permite subir un documento pdf para convertirlo en una presentacion tipo revista o libro, en la cual le da un efecto mas dinamico al momento de revisar la presentacion.

A continuacion un ejemplo hecho en esta herramienta:

Los tres cochinos

viernes, 2 de noviembre de 2012

      BUSQUEDA BINARIA DE UN VECTOR.

La búsqueda binaria al igual que otros algoritmos como el quicksort utiliza la técnica divide y vencerás. Uno de los requisitos antes de ejecutar la búsqueda binaria, es que el conjunto de elementos debe de estar ordenado. 

Supongamos que tenemos el siguiente array:
57 53 21 37 17 36 22 3 44 97 89 26 31 47 8 17

Debemos ordenarlo:
3 8 17 17 21 22 26 31 36 37 44 47 53 57 89 97


Necesitamos una seria de datos para realizar la búsqueda: El elemento en la posición inicio, fin, medio. Y porsupuesto el tamaño del vector y elemento que queremos buscar.

inicio = 0;
fin = tam – 1;
medio = (inicio + fin) / 2;


 A continuacion el codigo:

/*
HECHO POR:
ING.SAUL VALECILLOS C.I:21151142.
*/

#include<iostream>

using namespace std;

int busqueda_binaria(int *array, int clave, int tamaño=10)
    {
        int medio, inicio, fin;
        inicio = 0;
        fin = tamaño-1;
   
        while(inicio <= fin){
          medio = (inicio + fin) / 2;
     

 /*Preguntamos si el elemento buscado es igual al elemento que se encuentra en la posicion medio del array, si es afirmativo ya encontramos el elemento y no hay nada más que hacer.*/ 
  if(clave == array[medio]){
            cout << "Se encuentra en la posicion " << medio + 1 << endl;
            return array[medio];
          } 

 /*Si no es así. Preguntamos si el elemento que se encuentra en la posición medio es mayor al elemento buscado, si es afirmativo y como el array está ordenado, quiere decir que elemento buscado es menor al del medio. Entonces ahora solo buscaríamos en esa división del array,
por lo tanto, el fin ahora sería el elemento anterior al medio.*/

               else{
              if(array[medio] > clave){
                fin= medio - 1;
              } 

 /*De lo contrario quiere decir que elemento buscado es mayor al del medio, entonces debemos buscar en la otra división del array, por lo tanto el inicio sería el elemento posterior al medio.*/
             else {
            inicio = medio + 1;
              }
          }
        }
        return -1;
}
int main()
{
    int i,j,cambio,clave, array[10]={9,81,54,63,87,41,36,78,99,12},tamaño=10;

    cout<<"La tabla desordenada:"<<endl;

    for( i=0;i<=6;i++){
           cout<<array[i]<<endl;          
                      }
    for(i=0;i<=6;i++){
        for(j=i;j<=6;j++){
                        
            if(array[i]>array[j]){

                cambio=array[i];
                array[i]=array[j];
                array[j]=cambio;
            }
        }
    }   
    cout<<"\nLa tabla ordenada:"<<endl;
    for(i=0;i<=6;i++){     
      cout<<array[i]<<endl;
    }
cout<<"Ingrese el valor que desea buscar"<<endl;
cin>>clave;
busqueda_binaria(array,clave,tamaño=10);


    system("pause");
    return 0;
}

El programa ya compilado:















BUSQUEDA LINEAL DE VECTORES


     Los algoritmos de búsqueda lineal y binaria son 2 de los algoritmos más usados para encontrar elementos en una estructura de datos.
      La búsqueda lineal probablemente es sencilla de implementar e intuitiva. Básicamente consiste en buscar de manera secuencial un elemento, es decir, preguntar si el elemento buscado es igual al primero, segundo, tercero y así sucesivamente hasta encontrar el deseado. 

     A continuacion un codigo sencillo, para desmostrar como funciona el programa:

El programa compilado: