Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/11/2011, 13:08
Avatar de FJGM11
FJGM11
 
Fecha de Ingreso: octubre-2011
Ubicación: Villa de Alvarez, Colima, Mexico
Mensajes: 6
Antigüedad: 12 años, 6 meses
Puntos: 0
Pregunta Busqueda Binaria

Código Javascript:
Ver original
  1. <script language="javascript">
  2.  
  3.         function buscbin()
  4.         {
  5.             var primero, ultimo,central;
  6.             var encontrado;
  7.             primero=0;
  8.             ultimo = n;
  9.             encontrado = 0;
  10.             while(primero <= ultimo && encontrado==0)
  11.             {
  12.                 central = (primero + ultimo) / 2;
  13.                 if (t=vector[central])
  14.                 {
  15.                     encontrado = 1;
  16.                 }
  17.                 else
  18.                 {
  19.                     primero = central + 1;
  20.                     ultimo = central - 1;
  21.                 }
  22.             }
  23.             if (encontrado=1)
  24.             {
  25.                 pos = central;
  26.             }
  27.             else
  28.             {
  29.                 pos = 0;
  30.             }
  31.         }
  32.  
  33.         var vector;
  34.         var i,j,temp,n;
  35.         var pos;
  36.         n = prompt('De cuantas posiciones quiere el vector?','');
  37.         vector = new Array(n);
  38.         document.write('Este es el vector:<br>');
  39.  
  40.         for(i=0;i<=n;i++)   //Genera aleatoriamente un vector de 'n' elementos.
  41.         {
  42.             vector[i]=Math.random() * 100;
  43.             vector[i]=parseInt(vector[i].toFixed());
  44.         }
  45.  
  46.         for (i=1;i<=vector.length;i++)
  47.         {
  48.             for(j=0;j<=vector.length-1;j++)
  49.             {
  50.                 if (vector[j-1] > vector[j])
  51.                 {
  52.                     temp = vector[j-1];
  53.                     vector[j-1]= vector[j];
  54.                     vector[j]= temp;
  55.                 }
  56.             }
  57.         }
  58.  
  59.         for(i=0;i<=n;i++)
  60.         {  
  61.             document.write(vector[i]+'<br>');
  62.         }
  63.  
  64.         var t = prompt('Que numero es el que desea buscar?:','');
  65.         t = parseInt(t);
  66.         buscbin();
  67.         pos = parseInt(pos+1);
  68.         document.write('<font size="5">El numero '+t+' esta en la posicion '+pos+'</font>');
  69.     </script>
Cuando se supone que me imprime la posicion, siempre agarra un numero al azar de los del vector y me imprime la posicion en la que esta, no busca el que yo le digo...

y siempre me crea un vector de n + 1 posiciones