See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Algoritmo de búsqueda - Wikipedia, la enciclopedia libre

Algoritmo de búsqueda

De Wikipedia, la enciclopedia libre

Un algoritmo de búsqueda es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Consiste en solucionar un problema booleano de existencia o no de un elemento determinado en un conjunto finito de elementos, es decir al finalizar el algoritmo este debe decir si el elemento en cuestión existe o no en ese conjunto (si pertenece o no a él), además, en caso de existir, el algoritmo podría proporcionar la localización del elemento dentro del conjunto.

Este problema puede reducirse a devolver la existencia de un número en un vector.

[editar] Búsqueda secuencial (sobre un vector no ordenado)

Cuando el contenido del Vector no está o no puede ser ordenado, necesitaremos realizar una búsqueda completa, ya que, en principio, la existencia se puede asegurar desde el momento que el elemento es localizado, pero no podemos asegurar la no existencia hasta pasar por el último elemento.

La idea sería recorrer todos los elementos secuencialmente y, si el elemento es localizado, devolver verdadero (o su posición dentro del vector). Si el elemento no es localizado se sigue recorriendo todo el vector hasta llegar al último elemento y si llegamos al final y no lo hemos encontrado se devuelve falso. El algoritmo en pseudocódigo sería algo así:

Datos de Entrada:
  vec: vector de enteros
  tam: tamaño del vector
  dato: entero que se quiere buscar dentro del vector

Variables
  pos: tipo entero

pos=0
Mientras (pos<tam) Hacer
  Si (vec[pos]=dato) Entonces
    Devolver verdadero /* o Devolver pos, la posición del elemento localizado*/
  Fin Sí
  pos=pos+1
Fin Mientras
Devolver Falso /* o devolver '-1' como convenio para cuando el elemento no se haya encontrado*/

[editar] Búsqueda binaria (sobre un vector ordenado)

Cuando el Vector en el que queremos determinar la existencia o no de un elemento está ordenado, o puede estarlo, puede ser conveniente utilizar un alogritmo de Búsqueda específico. La utilización de éste permitirá reducir considerablemente el tiempo de proceso, ya que lo reduce exponencialmente.

Datos de Entrada:
  vec: vector de enteros
  tam: tamaño del vector
  dato: entero que se quiere buscar dentro del vector

Variables
  centro: tipo entero
  izq: tipo entero
  der: tipo entero

Mientras (izq<=der) Hacer
  centro=(izq+der)/2 /* división entera: se trunca la parte decimal */
  Si (vec[centro]=dato) Entonces
    Devolver verdadero /* o Devolver pos, la posición del elemento localizado*/
  Fin Si
  Si (dato<vec[centro]) Entonces
    der=centro-1
  Sino
    izq=centro+1
  Fin Si
Fin Mientras
Devolver Falso /* o devolver '-1' como convenio para cuando el elemento no se haya encontrado*/

[editar] Enlaces externos


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -