Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - David_RM

#1
Os dejo el enunciado, el algoritmo ya lo explique antes:

Consiste en buscar la posición de un elemento dado entre dos posiciones de un vector no ordenado. En caso de que exista, devolver la posición del elemento o -1 si no existe. Para resolver el problema mediante recursividad, consiste en dividir la estructura en dos partes del mismo tamaño.
#2
Igual no es busquedad binaria, el algoritmo ya lo explique anteriormente
#3
No se puede ordenar. De todas formas, gracias a todos
#4
Ya expliqué como es el algoritmo. Se qué es absurdo, pero es lo que me han pedido en la facultad xD
#5
Bueno, voy avanzando, ya tengo el código:

int buscaElemento(int n, const Vector v, int inf, int sup){
   double res1;
   double res2;
   double res = -1.0;

   if(sup-inf == 0){
      if(v[inf] == n){
         res = inf;
      }
   } else {
        res1 = buscaElemento(n, v, inf, sup-inf/2);
        res2 = buscaElemento(n, v, (sup-inf/2)+1, sup);
   }

   if(res1 != -1.0){
      res = res1;
   } else if(res2 != -1.0){
      res = res2;
   }

   return res;
}

El problema ahora es que no funciona, se pilla el programa, supongo que será por las conversiones entre int y double no?
#6
Siempre en dos mitades iguales. Ejemplo:
[5,7,8,3,4,9,1,3] se divide [5,7,8,3] y [4,9,1,3]. A su vez [5,7,8,3] se divide en [5,7] y [8,3]. [5,7] se divide en [5] y [7], con arrays de un elemento que es el caso base.

El problema es como implementar todo ese algoritmo en C.
#7
El algoritmo lo que hacer es dividir recursivamente el array en dos partes iguales, hasta llegar al caso base que es que el array tenga un elemento
#8
Necesito hacer un código que haga la busqueda binaria de un array no ordenado. Entiendo el código usual pero a la hora de discriminar entre los dos sub-arrays no se muy bien que hacer.