Logo Studenta

Estructuras de Datos I - Búsquedas

¡Este material tiene más páginas!

Vista previa del material en texto

Estructuras de Datos I
Búsquedas
Búsqueda
La función de búsqueda realiza la localización de un elemento dentro de una lista o arreglo, como resultado devuelve una posición o índice donde se encuentra el elemento, si el elemento no es encontrado devuelve una posición invalida.
				Lineal
				Binaria
Iterativa
Recursiva
Búsqueda Lineal
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
Posiciones válidas
Posiciones inválidas
Posiciones inválidas
7
8
9
Búsqueda Lineal
43
Elemento
9
ultind
i
Función: BusquedaLineal()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0
			mientras i <= ultind
				¿elemento = array[i]?
					Si: regresar i
				i = i + 1
			fin mientras
		regresar - 1
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
7
8
9
Búsqueda Lineal
3
21
1
43
69
2
93
0
1
2
3
43
Elemento
4
5
6
78
69
1
0
9
7
8
9
ultind
i
Función: BusquedaLineal()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0
			mientras i <= ultind
				¿elemento = array[i]?
					Si: regresar i
				i = i + 1
			fin mientras
		regresar - 1
Búsqueda Lineal
43
Elemento
0
9
ultind
i
Función: BusquedaLineal()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0
			mientras i <= ultind
				¿elemento = array[i]?
					Si: regresar i
				i = i + 1
			fin mientras
		regresar - 1
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
7
8
9
Búsqueda Lineal
3
21
1
43
69
2
93
0
1
2
3
43
Elemento
4
5
6
78
69
1
0
9
7
8
9
ultind
i
Función: BusquedaLineal()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0
			mientras i <= ultind
				¿elemento = array[i]?
					Si: regresar i
				i = i + 1
			fin mientras
		regresar - 1
Búsqueda Lineal
3
21
1
43
69
2
93
0
1
2
3
43
Elemento
4
5
6
78
69
1
1
9
7
8
9
ultind
i
Función: BusquedaLineal()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0
			mientras i <= ultind
				¿elemento = array[i]?
					Si: regresar i
				i = i + 1
			fin mientras
		regresar - 1
Búsqueda Lineal
3
21
1
43
69
2
93
0
1
2
3
43
Elemento
4
5
6
78
69
1
1
9
7
8
9
ultind
i
Función: BusquedaLineal()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0
			mientras i <= ultind
				¿elemento = array[i]?
					Si: regresar i
				i = i + 1
			fin mientras
		regresar - 1
Búsqueda Lineal
3
21
1
43
69
2
93
0
1
2
3
43
Elemento
4
5
6
78
69
1
1
9
7
8
9
ultind
i
Función: BusquedaLineal()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0
			mientras i <= ultind
				¿elemento = array[i]?
					Si: regresar i
				i = i + 1
			fin mientras
		regresar - 1
Búsqueda Lineal
3
21
1
43
69
2
93
0
1
2
3
43
Elemento
4
5
6
78
69
1
2
9
7
8
9
ultind
i
Función: BusquedaLineal()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0
			mientras i <= ultind
				¿elemento = array[i]?
					Si: regresar i
				i = i + 1
			fin mientras
		regresar - 1
Búsqueda Lineal
3
21
1
43
69
2
93
0
1
2
3
43
Elemento
4
5
6
78
69
1
2
9
7
8
9
ultind
i
Función: BusquedaLineal()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0
			mientras i <= ultind
				¿elemento = array[i]?
					Si: regresar i
				i = i + 1
			fin mientras
		regresar - 1
Búsqueda Lineal
3
21
1
43
69
2
93
0
1
2
3
43
Elemento
4
5
6
78
69
1
2
9
7
8
9
ultind
i
Función: BusquedaLineal()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0
			mientras i <= ultind
				¿elemento = array[i]?
					Si: regresar i
				i = i + 1
			fin mientras
		regresar - 1
Búsqueda Lineal
3
21
1
43
69
2
93
0
1
2
3
43
Elemento
4
5
6
78
69
1
2
9
7
8
9
ultind
i
Función: BusquedaLineal()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0
			mientras i <= ultind
				¿elemento = array[i]?
					Si: regresar i
				i = i + 1
			fin mientras
		regresar - 1
3
21
1
43
69
2
93
0
1
2
3
78
Elemento
4
5
6
78
69
1
7
8
9
Búsqueda Binaria
78
Elemento
9
ultind
i
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
7
8
9
Función: BusquedaBinaria()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0, J = ultind
			mientras i <= J
				medio = (i + J) / 2
				¿array[medio] = elemento?
					Si: regresar medio
				¿elemento < arreglo[medio]?
					Si: J = medio - 1
					No: i = medio + 1
			fin mientras
		regresar - 1
9
J
Medio
Función: BusquedaBinaria()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0, J = ultind
			mientras i <= J
				medio = (i + J) / 2
				¿array[medio] = elemento?
					Si: regresar medio
				¿elemento < arreglo[medio]?
					Si: J = medio - 1
					No: i = medio + 1
			fin mientras
		regresar - 1
Búsqueda Binaria
78
Elemento
0
9
ultind
i
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
7
8
9
9
J
Medio
Búsqueda Binaria
78
Elemento
0
9
ultind
i
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
7
8
9
Función: BusquedaBinaria()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0, J = ultind
			mientras i <= J
				medio = (i + J) / 2
				¿array[medio] = elemento?
					Si: regresar medio
				¿elemento < arreglo[medio]?
					Si: J = medio - 1
					No: i = medio + 1
			fin mientras
		regresar - 1
9
J
Medio
Búsqueda Binaria
78
Elemento
0
9
ultind
i +
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
7
8
9
Función: BusquedaBinaria()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0, J = ultind
			mientras i <= J
				medio = (i + J) / 2
				¿array[medio] = elemento?
					Si: regresar medio
				¿elemento < arreglo[medio]?
					Si: J = medio - 1
					No: i = medio + 1
			fin mientras
		regresar - 1
9
J
5
Medio
Búsqueda Binaria
78
Elemento
0
9
ultind
i
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
7
8
9
Función: BusquedaBinaria()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0, J = ultind
			mientras i <= J
				medio = (i + J) / 2
				¿array[medio] = elemento?
					Si: regresar medio
				¿elemento < arreglo[medio]?
					Si: J = medio - 1
					No: i = medio + 1
			fin mientras
		regresar - 1
9
J
5
Medio
Búsqueda Binaria
78
Elemento
0
9
ultind
i
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
7
8
9
Función: BusquedaBinaria()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0, J = ultind
			mientras i <= J
				medio = (i + J) / 2
				¿array[medio] = elemento?
					Si: regresar medio
				¿elemento < arreglo[medio]?
					Si: J = medio - 1
					No: i = medio + 1
			fin mientras
		regresar - 1
9
J
5
Medio
Búsqueda Binaria
78
Elemento
6
9
ultind
i
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
7
8
9
Función: BusquedaBinaria()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0, J = ultind
			mientras i <= J
				medio = (i + J) / 2
				¿array[medio] = elemento?
					Si: regresar medio
				¿elemento < arreglo[medio]?
					Si: J = medio - 1
					No: i = medio + 1
			fin mientras
		regresar - 1
9
J
5
Medio
Búsqueda Binaria
78
Elemento
6
9
ultind
i
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
7
8
9
Función: BusquedaBinaria()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0, J = ultind
			mientras i <= J
				medio = (i + J) / 2
				¿array[medio] = elemento?
					Si: regresar medio
				¿elemento < arreglo[medio]?
					Si: J = medio - 1
					No: i = medio + 1
			fin mientras
		regresar - 1
9
J
5
Medio
Búsqueda Binaria
78
Elemento
6
9
ultind
i
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
7
8
9
Función: BusquedaBinaria()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0, J = ultind
			mientras i <= J
				medio = (i + J) / 2
				¿array[medio] = elemento?
					Si: regresar medio
				¿elemento < arreglo[medio]?
					Si: J = medio - 1
					No: i = medio + 1
			fin mientras
		regresar - 1
9
J
7
Medio
Búsqueda Binaria
78
Elemento
6
9
ultind
i
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
7
8
9
Función: BusquedaBinaria()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0, J = ultind
			mientras i <= J
				medio = (i + J) / 2
				¿array[medio] = elemento?
					Si: regresar medio
				¿elemento < arreglo[medio]?
					Si: J = medio - 1
					No: i = medio + 1
			fin mientras
		regresar - 1
9
J
7
Medio
Búsqueda Binaria
78
Elemento
6
9
ultind
i
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
7
8
9
Función: BusquedaBinaria()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0, J = ultind
			mientras i <= J
				medio = (i + J) / 2
				¿array[medio] = elemento?
					Si: regresar medio
				¿elemento< arreglo[medio]?
					Si: J = medio - 1
					No: i = medio + 1
			fin mientras
		regresar - 1
9
J
7
Medio
Búsqueda Binaria
78
Elemento
8
9
ultind
i
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
7
8
Función: BusquedaBinaria()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0, J = ultind
			mientras i <= J
				medio = (i + J) / 2
				¿array[medio] = elemento?
					Si: regresar medio
				¿elemento < arreglo[medio]?
					Si: J = medio - 1
					No: i = medio + 1
			fin mientras
		regresar - 1
9
9
J
7
Medio
Búsqueda Binaria
78
Elemento
8
9
ultind
i
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
7
8
9
Función: BusquedaBinaria()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0, J = ultind
			mientras i <= J
				medio = (i + J) / 2
				¿array[medio] = elemento?
					Si: regresar medio
				¿elemento < arreglo[medio]?
					Si: J = medio - 1
					No: i = medio + 1
			fin mientras
		regresar - 1
9
J
7
Medio
Búsqueda Binaria
78
Elemento
8
9
ultind
i
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
7
8
9
Función: BusquedaBinaria()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0, J = ultind
			mientras i <= J
				medio = (i + J) / 2
				¿array[medio] = elemento?
					Si: regresar medio
				¿elemento < arreglo[medio]?
					Si: J = medio - 1
					No: i = medio + 1
			fin mientras
		regresar - 1
9
J
8
Medio
Búsqueda Binaria
78
Elemento
8
9
ultind
i
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
7
8
9
9
J
8
Medio
Función: BusquedaBinaria()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0, J = ultind
			mientras i <= J
				medio = (i + J) / 2
				¿array[medio] = elemento?
					Si: regresar medio
				¿elemento < arreglo[medio]?
					Si: J = medio - 1
					No: i = medio + 1
			fin mientras
		regresar - 1
Búsqueda Binaria
78
Elemento
8
9
ultind
i
3
21
1
43
69
2
93
0
1
2
3
4
5
6
78
69
1
7
8
9
Función: BusquedaBinaria()
Recibe: elemento, array, ultind
Regresa: posición
			i = 0, J = ultind
			mientras i <= J
				medio = (i + J) / 2
				¿array[medio] = elemento?
					Si: regresar medio
				¿elemento < arreglo[medio]?
					Si: J = medio - 1
					No: i = medio + 1
			fin mientras
		regresar - 1
9
J
8
Medio
Criterios de evaluación en métodos de búsquedas
Búsqueda Lineal
Búsqueda Binaria
 = n
 = log2 n
Criterios de evaluación en métodos de búsquedas
	Elementos	 = n	 = log2 n
	100	100	7
	1,000	1,000	10
	10,000	10,000	13
	100,000	100,000	17
	1’000,000	1’000,000	20

Continuar navegando