Foros del Web » Programando para Internet » Javascript »

Busqueda Binaria

Estas en el tema de Busqueda Binaria en el foro de Javascript en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original < script language = "javascript" >           function buscbin ( )       ...
  #1 (permalink)  
Antiguo 15/11/2011, 13:08
Avatar de FJGM11  
Fecha de Ingreso: octubre-2011
Ubicación: Villa de Alvarez, Colima, Mexico
Mensajes: 6
Antigüedad: 12 años, 5 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
  #2 (permalink)  
Antiguo 15/11/2011, 14:09
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Busqueda Binaria

Contanos un poco mas que necesitas hacer, porque, etc. para asi podemos analizar si ya existe una solucion o pensarla un poquito mejor, porque no sabemos que necesitas todavia, mas allá del error, nos ayudaría saber un poco más :)
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #3 (permalink)  
Antiguo 15/11/2011, 22:23
Avatar de FJGM11  
Fecha de Ingreso: octubre-2011
Ubicación: Villa de Alvarez, Colima, Mexico
Mensajes: 6
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Busqueda Binaria

Cita:
Iniciado por linuxzero Ver Mensaje
Contanos un poco mas que necesitas hacer, porque, etc. para asi podemos analizar si ya existe una solucion o pensarla un poquito mejor, porque no sabemos que necesitas todavia, mas allá del error, nos ayudaría saber un poco más :)
Pues en si lo que tengo que hacer es una Busqueda Dicotomica (binaria) en un vector de n posiciones, mas no se si mi algoritmo esta bien.

Etiquetas: busquedas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:30.