Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/04/2011, 16:08
RodrigoG
 
Fecha de Ingreso: diciembre-2009
Ubicación: dirname(__FILE__)
Mensajes: 149
Antigüedad: 14 años, 5 meses
Puntos: 11
Implementar una búsqueda lineal en C++ (en qué me equivoco??)

Hola! estoy tratando de implementar una búsqueda lineal simple más que nada para experimentar con el lenguaje (vengo de Java).

El problema es que deseo que la plantilla busquedaLineal(T[], T) sepa automáticamente el largo del arreglo, para eso divido el espacio de memoria del arreglo con el espacio de cada uno de sus elementos "sizeof(arreglo)/sizeof(valor)", pero allí está el problema, se agradece cualquier ayuda

Código C++:
Ver original
  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. template <class T> int busquedaLineal(T[], T);
  7. template <class T> int busquedaLineal(T[], T, int, int);
  8.  
  9. int main(int argc, char *argv[])
  10. {
  11.     int arreglo[15] = {25,17,13,16,41,32,12,115,95,84,54,63,78,21,10};
  12.  
  13.     cout<<"\nIndique el valor a buscar:\t";
  14.     int a;
  15.     cin>>a;
  16.    
  17.     cout<<"\nEse valor está en: "<< busquedaLineal(arreglo, a);
  18.    
  19.     system("PAUSE");
  20.     return EXIT_SUCCESS;
  21. }
  22.  
  23. template <class T> int busquedaLineal(T arreglo[], T valor, int desde, int hasta) {
  24.     for(int i = desde; i < hasta; i++)
  25.     {
  26.         if(arreglo[i] == valor) return i;
  27.     }
  28.    
  29.     return -1;
  30. }
  31.  
  32. template <class T> int busquedaLineal(T arreglo[], T valor) {
  33.          int hasta = sizeof(arreglo)/sizeof(valor);
  34.          return busquedaLineal(arreglo, valor, 0, hasta);
  35. }
__________________
Estreno blog ~ DesarrolladorWeb.cl :)