ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Algoritmos de Búsqueda


Enviado por   •  21 de Julio de 2017  •  Apuntes  •  410 Palabras (2 Páginas)  •  88 Visitas

Página 1 de 2

// Algoritmo de Búsqueda Binaria Iterativa

void BinarySearch(Elemento A[], int First, int Last, Elemento Value, int &r) {

int Mid = (First + Last)/2;

while (First <= Last && Value != A[Mid]) {

if (Value < A[Mid]) Last = Mid-1;

else First = Mid+1;

Mid = (First + Last)/2;

}

if (Value == A[Mid]) r = Mid;

else r = -1;

}

// Algoritmo de Búsqueda Binaria Recursiva

void BinarySearchR(Elemento A[], int First, int Last, Elemento Value, int &r) {

int Mid = (First + Last)/2;

if (First > Last) r = -1;

else {

if (Value == A[Mid]) r = Mid;

else

if (Value < A[Mid])

BinarySearchR(A,First,Mid-1,Value,r);

else

BinarySearchR(A,Mid+1,Last,Value,r);

}

}

// Algoritmo de Búsqueda Secuencial

void SequentialSearch(Elemento X[], int Last, Elemento Value, int &r) {

int i = 0;

while (i < Last) {

if (X[i]==Value)

r = i;

i++;

}

}

// Algoritmo de Búsqueda Secuencial Mejorada

void ImprovedSequentialSearch(Elemento X[], int Last, Elemento Value, int &r) {

int i = 0;

r = -1;

while (r == -1 && i < Last) {

if (X[i]==Value)

r = i;

else

i++;

}

}

// Algoritmo de Búsqueda Secuencial Ordenada

void SequentialSearchOrdenada(Elemento X[], int Last, Elemento Value, int &r) {

int i = 0;

r = -1;

while (r == -1 && i < Last && X[i]<=Value) {

if (X[i]==Value)

r = i;

else

i++;

}

}

// Algoritmo de Búsqueda Binaria Iterativa

Int busquedaBinaria(T x, T v[], intcant)

{

intbajo=0, alto=cant-1, mitad, encontrado=0;

while((bajo<=alto)&&(!encontrado))

{

mitad=(alto+bajo)/2;

if(x==v[mitad])

encontrado=1;

else

if(x<v[mitad])

alto=mitad-1;

else

bajo=mitad+1;

}

return(encontrado?mitad:-1);

}

//Algoritmo de Búsqueda Binaria Recursiva

int busquedaBinaria(T A[], int valor, inferior, superior) {

if (superior < inferior)

return -1 // no encontrado o vector desordenado;

int m = inferior + ((superior - inferior) / 2);

if (A[m] > valor)

return busquedaBinaria(A, valor, inferior, m-1);

else

if (A[m] < valor)

return busquedaBinaria(A[], valor, m+1, superior);

else

returnm; //posicion del elemento encontrado

...

Descargar como (para miembros actualizados) txt (3 Kb) pdf (45 Kb) docx (13 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com