top of page

METODO DE BUSQUEDA

  • Foto del escritor: Erick Bryan Geldres Asto
    Erick Bryan Geldres Asto
  • 19 jun 2019
  • 1 Min. de lectura

Búsqueda secuencial Consiste en recorrer y examinar cada uno de los elementos del array hasta encontrar el o los elementos buscados, o hasta que se han mirado todos los elementos del array.for(i=j=0;i<N;i++)

  if(array[i]==elemento)

   {

      solucion[j]=i;

      j++;

    }

Este algoritmo se puede optimizar cuando el array está ordenado, en cuyo caso la condición de salida cambiaría a:for(i=j=0;array[i]<=elemento;i++)o cuando sólo interesa conocer la primera ocurrencia del elemento en el array:for(i=0;i<N;i++)

  if(array[i]==elemento)

      break;

En este último caso, cuando sólo interesa la primera posición, se puede utilizar un centinela, esto es, dar a la posición siguiente al último elemento de array el valor del elemento, para estar seguro de que se encuentra el elemento, y no tener que comprobar a cada paso si seguimos buscando dentro de los límites del array:array[N]=elemento;for(i=0;;i++)

  if(array[i]==elemento)

      break;

Si al acabar el bucle, i vale N es que no se encontraba el elemento. El número medio de comparaciones que hay que hacer antes de encontrar el elemento buscado es de (N+1)/2.

_________________________________________________________________________





#include<iostream>

#include<math.h>

using namespace std;


float leer(),metodo_busqueda();

int opcion,a,b,A[100][100],i,j,dato;

char band='F';


int main()

{



do{

cout<<"***********MENU************";

cout<<"\n1) Leer";

cout<<"\n2) Metodo de Busqueda";

cout<<"\n3) Salir";

cout<<"\n\nIngrese una Opcion: ";cin>>opcion;

system("cls");

switch(opcion)

{

case 1:{

leer();

};break;

case 2:{

metodo_busqueda();

};break;

default:{if(opcion!=3)

{cout<<"\nIngrese una opcion valida\n\n";

};break;

}

}


}while(opcion!=3);

return 0;

}


float leer()

{

cout<<"\n____Matriz[A]____";

cout<<"\nN° de filas A: ";cin>>a;

cout<<"N° de columnas A: ";cin>>b;

cout<<endl;

for(i=1;i<a+1;i++)

{for(j=1;j<b+1;j++)

{cout<<"A["<<i<<"]["<<j<<"]: ";cin>>A[i][j];

}

}

cout<<endl<<endl;

}

float metodo_busqueda()

{cout<<"\nMatriz[A]"<<endl;

for(i=1;i<a+1;i++)

{for(j=1;j<b+1;j++)

{cout<<A[i][j]<<" ";

}cout<<endl<<endl;

}

cout<<"Digite el numero a buscar: ";cin>>dato;

cout<<endl;

for(i=1;(band=='F')&&(i<a+1);i++)

{for(j=1;(band=='F')&&(j<b+1);j++)

{if(A[i][j]==dato)

{band='V';

}

}

}

if(band=='F')

{cout<<"El numero no esta en la matriz"<<endl<<endl<<endl;

}else if(band=='V')

{cout<<"El numero esta en: A["<<i<<"]["<<j<<"]"<<endl<<endl<<endl;

}

}






 
 
 

Entradas recientes

Ver todo
Aplicacion de los numeros Complejos

Los números complejos permiten representar situaciones de la realidad cuya descripción y tratamiento es posible gracias a las propiedades...

 
 
 

Komentáře


© 2023 para  Le Cõuleur. Creado con Wix.com

bottom of page