SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
INGENIERIA EN INFORMATICA
Análisis de algoritmos
Mitad del cuadrado
Asignatura: Análisis de algoritmos
Integrantes: Eduardo Leiva
Jonathan García
Sergio Ormeño
Docente: Pilar Pardo H.
Fecha: 16/04/2014
1
Contenido
Introducción................................................................................................................................. 2
Algoritmos de Búsqueda ........................................................................................................... 3
Búsqueda Binaria:...................................................................................................................... 3
Búsqueda Lineal:........................................................................................................................ 3
Hashing........................................................................................................................................ 3
Truncamiento: ............................................................................................................................. 4
Plegamiento: ............................................................................................................................... 5
Aritmética Modular: .................................................................................................................... 5
Mitad del Cuadrado:................................................................................................................... 6
Caso Promedio ........................................................................................................................... 7
Peor Caso.................................................................................................................................... 7
Tratamiento de colisiones: ........................................................................................................ 8
Sondeo lineal............................................................................................................................... 8
Doble hashing ............................................................................................................................. 9
Encadenamiento de sinónimos ................................................................................................ 9
Direccionamiento por cubetas................................................................................................ 10
Cuadro comparativo de los métodos de búsqueda de un algoritmo................................ 10
Ventajas y Desventajas del Hashing..................................................................................... 11
Comportamiento de un Algoritmo .......................................................................................... 11
Ventajas y desventajas de los algoritmos ............................................................................ 11
Conclusión................................................................................................................................. 13
2
Introducción
Los algoritmos son preciados procesos que nos hacen en si la vida un poco más
ordenada a nivel de los que somos programadores o estamos inmersos en el mundo
de la informática, claro está, existen los creadores de los algoritmos y aquellos que
gozan del uso de estos en diferentes casos, La ciencia de un algoritmo en si es
simplificar un problema en base a un conjunto de pasos que nos permitan resolver
algo o satisfacer una necesidad. Pero, ¿cuantos tipos de algoritmos existen? ¿Solo
nos limita a una cosa a la vez? ¿Cómo es que logran resolver algo de manera
eficiente? ¿Que utilizan para su funcionamiento? Interrogantes como estas serán
evaluadas dentro de este informe, en donde se detallara en base a conocimientos
previos adquiridos en clases la temática de los algoritmos de Búsqueda, en este caso,
repasando la mayoría de los más usados actualmente, los de más demanda, pero en
si dejándonos un poco más de explicación sobre el tema algoritmo que nos convoca,
“Mitad de Cuadrado” o “función cuadrática”.
3
Algoritmos de Búsqueda
¿Qué es una Búsqueda a nivel de análisis de algoritmos?
Es una operación que busca un elemento X entre un conjunto de estos almacenados
ya sea de manera digital o simplemente de manera manual.
Búsqueda Binaria:
Para utilizar la búsqueda binaria debemos tener la lista previamente ordenada de
acuerdo al valor de la clave y conocer el número total de registros. La búsqueda
binaria reduce el tiempo de búsqueda considerablemente ya que disminuye las
iteraciones.
Está altamente recomendado para buscar en listas de gran tamaño. Por ejemplo, en
uno conteniendo 50.000.000 elementos, realiza como máximo 26 comparaciones (en
el peor de los casos). Para implementar este algoritmo se compara el elemento a
buscar con un elemento cualquiera de la lista, si el valor de éste es mayor que el del
elemento buscado se repite el procedimiento en la parte de la lista que va desde el
inicio hasta el elemento tomado, en caso contrario se toma la parte de la lista que va
desde el elemento tomado hasta el final. De esta manera obtenemos intervalos cada
vez más pequeños, hasta que se obtenga un intervalo indivisible. Si el elemento no se
encuentra dentro de este último entonces se deduce que el elemento buscado no se
encuentra en toda la lista.
Búsqueda Lineal:
La búsqueda secuencial se utiliza normalmente cuando la lista no está ordenada o no
se puede ordenar previamente. Consiste en buscar el elemento llamado clave
comparándolo con cada elemento de la lista (vector) hasta encontrarlo, o hasta que se
llegue al final.
Hashing
¿Qué es Hashing?
Esta es una función que consiste en transformar claves numéricas o alfanuméricas en
direcciones o índices de un vector. No es necesario que los elementos de la clave
estén ordenados para poder realizar este tipo de búsqueda. Existen más, pero se
contemplaran en este informe 4 métodos de transformación de claves que aún siguen
en uso: Truncamiento, plegamiento, aritmética modular y mitad del cuadrado.
4
Haciendo un poco de historia, el término de hash (apodado Hashing un tiempo más
tarde) proviene de una analogía que cuyo significado en ingles de dicha palabra se
aplica al mundo real como el “picar y mesclar”. Donal Knuth afirma que H.P Luhn
(empleado de IBM) fue el primero en utilizar el concepto en un memorándum fechado
en enero de 1953, aun así se desconoce de su uso hasta 10 años después cuando se
hizo masivo mediante un algoritmo creado y apodado SHA-1, este algoritmo se
basaba en una función de división que tomaba palabras y las dividía usando funciones
matemáticas seleccionadas especialmente para el lenguaje que interpretaba y tomaba
por entrada.
Truncamiento:
En este método se ignora parte de la clave y se deja la parte restante como índice.
Ejemplos:
5
Plegamiento:
El plegamiento en si se puede definir en base a dos puntos importantes:
o Se encarga de crear una partición de la clave en diferentes partes y
combinarlas.
o Todas las partes, a excepción de la última, deben tener el mismo número de
dígitos que el tamaño del vector.
Ejemplos:
Aritmética Modular:
Este método convierte la clave en un número entero, se divide por el tamaño del rango
del índice y toma el resto como resultado. La función que se utiliza es el MOD (módulo
o resto de la división entera).
Fórmula: H(x)= x MOD m
Ejemplos:
6
Mitad del Cuadrado:
El Método del Cuadrado Medio de von Neumann consistía en el uso de un algoritmo
en el cual al inicio se introduce un número cualquiera conformado por 10 dígitos, luego
se calcula el cuadrado de ese número inicial, a continuación se toman exactamente los
10 dígitos ubicados en la mitad del número resultante, y ese número conformado por
los 10 dígitos se toma como un nuevo número aleatorio que sirve para engrosar la
secuencia aleatoria generada, al cual posteriormente se le puede aplicar de nuevo el
algoritmo del cuadrado medio para así obtener sucesivamente más números
aleatorios.
El esquema de funcionamiento del algoritmo del Método del Cuadrado Medio
propuesto por John von Neumann es el siguiente:
Es decir en esta técnica, la llave es elevada al cuadrado, después algunos dígitos
específicos se extraen de la mitad del resultado para constituir la dirección relativa. Si
se desea una dirección de n dígitos, entonces los dígitos se truncan en ambos
extremos de la llave elevada al cuadrado, tomando n dígitos intermedios. Las mismas
posiciones de n dígitos deben extraerse para cada llave.
El tamaño de los dígitos a escoger seria n
7
En el caso que la cifra resultante sea par:
Los números centrales del resultado corresponden a la dirección.
En caso de que la cifra sea impar:
Se toma el dígito central y el anterior a ese dígito.
Ejemplos:
Lo que cabe señalar que el tamaño del vector no afecta directamente a la aplicación
del método, pero afecta al tiempo de ejecución de la búsqueda. Produciendo que se
ocupe más espacio en memoria.
Caso Promedio: que el vector este con su índice vacío, así mismo que el método
otorge una clave con una posición que se encuentre desocupada para así seguir
llenando sin problemas ni colisiones.
Peor Caso: que el índice (inicio) y la cola (final) estén ocupadas, que no se encuentre
una posición de acuerdo a la clave obtenida y que el algoritmo se caiga, crashee o
simplemente ocupe recursos al generar un loop infinito (dado que no habrá respuesta).
8
Tratamiento de colisiones:
Algunas de las funciones hash presentan colisiones, es por eso que se debe saber
qué hacer cuando a dos elementos diferentes les corresponde el mismo índice.
¿Qué es una colisión?
Es cuando la función hash obtiene una misma dirección para dos claves diferentes.
Al presentarse una colisión se requiere realizar un proceso adicional con el fin de
encontrar una posición para la clave, cuando la función hash logra evitar que se
produzcan colisiones se denomina Hashing perfecto.
Para el tratamiento de colisiones existen 2 métodos:
- Direccionamiento abierto:
Se encuentra entre dirección de origen para K2 dentro del archivo.
- Separación de desborde (Área de desborde):
Se encuentra una dirección para K2 fuera del área principal del archivo, en un
área especial de desborde, que es utilizada exclusivamente para almacenar
registro que no pueden ser asignados en su dirección de origen
Sondeo lineal
Es una técnica de direccionamiento abierto. Este es un proceso de búsqueda
secuencial desde la dirección de origen para encontrar la siguiente localidad, también
conocida como método de desbordamiento consecutivo.
Para almacenar un registro por Hashing con sondeo lineal, la dirección no debe caer
fuera del límite del archivo. En lugar de terminar cuando el límite del espacio de
dirección se alcanza, se regresa al inicio del espacio y sondeamos desde ahí. Por lo
que debe ser posible detectar si la dirección base ha sido encontrada de nuevo, lo cual
indica que el archivo está lleno y no hay espacio para la llave.
9
Para la búsqueda de un registro por Hashing con sondeo lineal, los valores de llave de
los registros encontrados en la dirección de origen, y en las direcciones alcanzadas
con el sondeo lineal, deberá compararse con el valor de la llave buscada, para
determinar si el registro objetivo ha sido localizado o no.
Doble Hashing
En esta técnica se aplica una segunda función hash para combinar la llave original con
el resultado del primer hash. El resultado del segundo hash puede situarse dentro del
mismo archivo o en un archivo de sobre flujo independiente; de cualquier modo, será
necesario algún método de solución si ocurren colisiones durante el segundo hash.
La ventaja del método de separación de desborde es que reduce la situación de una
doble colisión, la cual puede ocurrir con el método de direccionamiento abierto, en el
cual un registro que no está almacenado en su dirección de origen desplazará a otro
registro, el que después buscará su dirección de origen. Esto puede evitarse con
direccionamiento abierto, simplemente moviendo el registro extraño a otra localidad y
almacenando al nuevo registro en la dirección de origen ahora vacía.
Puede ser aplicado como cualquier direccionamiento abierto o técnica de separación
de desborde.
Para ambas métodos para la solución de colisiones existen técnicas para mejorar su
desempeño como:
Encadenamiento de sinónimos
Una buena manera de mejorar la eficiencia de un archivo que utiliza el cálculo de
direcciones, sin directorio auxiliar para guiar la recuperación de registros, es el
encadenamiento de sinónimos.
Mantener una lista ligada de registros, con la misma dirección de origen, no reduce el
número de colisiones, pero reduce los tiempos de acceso para recuperar los registros
que no se encuentran en su localidad de origen. El encadenamiento de sinónimos
puede emplearse con cualquier técnica de solución de colisiones.
Cuando un registro debe ser recuperado del archivo, sólo los sinónimos de la llave
objetivo son accesados.
10
Direccionamiento por cubetas
Otro enfoque para resolver el problema de las colisiones es asignar bloques de
espacio (cubetas), que pueden acomodar ocurrencias múltiples de registros, en lugar
de asignar celdas individuales a registros. Cuando una cubeta es desbordada, alguna
nueva localización deberá ser encontrada para el registro. Los métodos para el
problema de sobrecupo son básicamente los mismos que los métodos para resolver
colisiones.
Cuadro comparativo de los métodos de búsqueda de un algoritmo
11
Ventajas y Desventajas del Hashing
Ventajas:
o Se pueden usar los valores naturales de la llave, puesto que se traducen
internamente a direcciones fáciles de localizar
o Se logra independencia lógica y física, debido a que los valores de las llaves
son independientes del espacio de direcciones
o No se requiere almacenamiento adicional para los índices
Desventajas:
o No pueden usarse registros de longitud variable
o El archivo no está clasificado
o No se permiten claves repetidas
o Solo se permite acceso por una sola llave
Comportamiento de un Algoritmo
Caso Peor: mayor número posible de instrucciones ejecutadas por el algoritmo.
Caso Mejor: menor número posible de instrucciones ejecutadas por el algoritmo.
Caso Medio o promedio: número de instrucciones igual a la cantidad de instrucciones
ejecutadas por el algoritmo.
Ventajas y desventajas de los algoritmos
Los algoritmos son la esencia de la informática, son uno de los centros de interés de
muchas, si no todas, de las áreas del campo de la informática.
o Puedes trabajar en orden.
o Te redacta en orden paso a paso lo que hay que hacer.
o Ayuda a resolver más fácil y rápido los problemas.
o Disminuye sensiblemente el riesgo de errores.
o Favorece el obtener el máximo de información.
12
Desventajas de un algoritmo:
o Hay textos que desarrollan los algoritmos, mediante diversos tipos de
programas, por ejemplo: el lenguaje de programación C++, pero para
comprender las letras deben poseer al menos un año de experiencia en ese
lenguaje de programación de alto y bajo nivel.
o Muchos algoritmos interesantes llevan implícitos complicados métodos de
organización de los datos utilizados en el calendo.
o Con frecuencia sucede que muchos de los algoritmos que se van a utilizar son
fáciles de implementan una vez que se ha descompuesto el programa, sin
embargo, en la mayor parte de los casos, existen unos pocos algoritmos cuya
elección es crítica porque su ejecución ocupara la mayoría de los recursos del
sistema.
o La elección del mayor algoritmo para una tarea particular puede ser un proceso
muy complicado y con frecuencia conllevara un análisis matemático sofisticado.
o Actualmente se está estudiando en la informática, como seleccionar el
algoritmo que conduzca a la mejor implementación pues para la mayoría de los
problemas existen varios algoritmos diferentes.
13
Conclusión
Se han analizado las técnicas o métodos más utilizados en el ámbito de
posicionamiento, búsqueda y transformación de claves en relación a vectores, dado
esto se puede inferir a que cada método tiene su propio modo de operar en base a
algoritmos que dependiendo de lo que hagan nos brindaran una respuesta más rápida
y eficiente a lo que buscamos, según sea el topo dato alfanumérico o carácter a
posicionar o buscar, esto nos lleva a nuestro tema, “mitad de cuadrado” o “función
cuadrática” un método de transformación derivado como un sub método del Hashing el
cual nos ayuda a posicionar dentro de un arreglo vector o matriz una clave que según
sea la posición ira donde calce, dado esto, los métodos se complementan entre otros,
pero se concluye que todos son dependientes en su mayoría del truncamiento al
momento de querer enfrentar colisiones según sea el tamaño del vector y de la clave a
posicionar, búsqueda lineal y binaria solo dan con un número que se desee, entra en
el ámbito búsqueda, por lo tanto se diferencian del Hashing puesto que es un método
de transformación y a nuestro entender, el que entra primero en acción es el Hashing
para luego tener algo que buscar.

Mais conteúdo relacionado

Mais procurados

Máquinas de Turing
Máquinas de TuringMáquinas de Turing
Máquinas de TuringTania Arroyo
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda HashBlanca Parra
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..NANO-06
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoJosé Antonio Sandoval Acosta
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sorttephyfree
 
Búsqueda secuencial en tabla ordenada
Búsqueda secuencial  en tabla ordenadaBúsqueda secuencial  en tabla ordenada
Búsqueda secuencial en tabla ordenadaEdwin Chavarria
 
Operaciones Básicas con el Sistema Octal
Operaciones Básicas con el Sistema OctalOperaciones Básicas con el Sistema Octal
Operaciones Básicas con el Sistema Octalpafalconi
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turingAnel Sosa
 
Estructuras dinámicas
Estructuras dinámicasEstructuras dinámicas
Estructuras dinámicasPatriciaU
 

Mais procurados (20)

Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Máquinas de Turing
Máquinas de TuringMáquinas de Turing
Máquinas de Turing
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Sistemas de Razonamiento Lógico
Sistemas de Razonamiento LógicoSistemas de Razonamiento Lógico
Sistemas de Razonamiento Lógico
 
Método por plegamiento Hash
Método por plegamiento HashMétodo por plegamiento Hash
Método por plegamiento Hash
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
Metodo quicksort
Metodo quicksortMetodo quicksort
Metodo quicksort
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
Ejercicios resueltos con Python
Ejercicios resueltos con PythonEjercicios resueltos con Python
Ejercicios resueltos con Python
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sort
 
Búsqueda secuencial en tabla ordenada
Búsqueda secuencial  en tabla ordenadaBúsqueda secuencial  en tabla ordenada
Búsqueda secuencial en tabla ordenada
 
Listas
ListasListas
Listas
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Operaciones Básicas con el Sistema Octal
Operaciones Básicas con el Sistema OctalOperaciones Básicas con el Sistema Octal
Operaciones Básicas con el Sistema Octal
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
 
Estructuras dinámicas
Estructuras dinámicasEstructuras dinámicas
Estructuras dinámicas
 
Recursividad
RecursividadRecursividad
Recursividad
 
Reglasproduccion
ReglasproduccionReglasproduccion
Reglasproduccion
 

Destaque

Destaque (11)

Informe Tic N1
Informe Tic N1Informe Tic N1
Informe Tic N1
 
Informe analisis de algoritmos
Informe analisis de algoritmosInforme analisis de algoritmos
Informe analisis de algoritmos
 
Algoritmo y mas teoria logica
Algoritmo y mas teoria logicaAlgoritmo y mas teoria logica
Algoritmo y mas teoria logica
 
Algoritmo De Cuadrados Medios
Algoritmo De Cuadrados MediosAlgoritmo De Cuadrados Medios
Algoritmo De Cuadrados Medios
 
Algoritmo De Multiplicador Constante & Algoritmo Lineal
Algoritmo De Multiplicador Constante & Algoritmo LinealAlgoritmo De Multiplicador Constante & Algoritmo Lineal
Algoritmo De Multiplicador Constante & Algoritmo Lineal
 
Algoritmos Coungrenciales No Lineales
Algoritmos Coungrenciales No LinealesAlgoritmos Coungrenciales No Lineales
Algoritmos Coungrenciales No Lineales
 
Algoritmo congruencial aditivo
Algoritmo congruencial aditivoAlgoritmo congruencial aditivo
Algoritmo congruencial aditivo
 
Numeros Aleatorios
Numeros AleatoriosNumeros Aleatorios
Numeros Aleatorios
 
Minimos Cuadrados Presentacion Final
Minimos Cuadrados Presentacion FinalMinimos Cuadrados Presentacion Final
Minimos Cuadrados Presentacion Final
 
EL INFORME
EL INFORMEEL INFORME
EL INFORME
 
Informe algoritmos de busqueda
Informe algoritmos de busquedaInforme algoritmos de busqueda
Informe algoritmos de busqueda
 

Semelhante a Algoritmo Mitad Cuadrado

Busqueda por HASH
Busqueda por HASHBusqueda por HASH
Busqueda por HASHSykrayo
 
Algoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoAlgoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoLutzo Guzmán
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busquedaIrvingMoran4
 
Metodos de Búsqueda
Metodos de BúsquedaMetodos de Búsqueda
Metodos de BúsquedaPedro Avaria
 
Informe tecnico unidad 6
Informe tecnico unidad 6Informe tecnico unidad 6
Informe tecnico unidad 6eliezerbs
 
Informe algoritmos de busqueda
Informe algoritmos de busquedaInforme algoritmos de busqueda
Informe algoritmos de busquedapazmoralesv
 
Documento de Busqueda Binaria
Documento de Busqueda BinariaDocumento de Busqueda Binaria
Documento de Busqueda BinariaSanTy BizZle
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busquedaOsirysRock
 
Algoritmo, Ordenacion y Búsqueda
Algoritmo, Ordenacion y BúsquedaAlgoritmo, Ordenacion y Búsqueda
Algoritmo, Ordenacion y BúsquedaJavier Alvarez
 
Aritmética Modular
Aritmética ModularAritmética Modular
Aritmética Modularvvillegass
 
Factorización de números semiprimos
Factorización de números semiprimosFactorización de números semiprimos
Factorización de números semiprimosPepeGarcia111
 
Técnicas de Diseño Detallado.
Técnicas de Diseño Detallado.Técnicas de Diseño Detallado.
Técnicas de Diseño Detallado.guestdf1874
 
Informe Análisis Búsqueda Binaria
Informe Análisis Búsqueda BinariaInforme Análisis Búsqueda Binaria
Informe Análisis Búsqueda BinariaJose Rivera
 
Diagramas De Flujo
Diagramas De FlujoDiagramas De Flujo
Diagramas De Flujocarlospaul
 

Semelhante a Algoritmo Mitad Cuadrado (20)

Busqueda por HASH
Busqueda por HASHBusqueda por HASH
Busqueda por HASH
 
Algoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoAlgoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamiento
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
Metodos de Búsqueda
Metodos de BúsquedaMetodos de Búsqueda
Metodos de Búsqueda
 
Informe tecnico unidad 6
Informe tecnico unidad 6Informe tecnico unidad 6
Informe tecnico unidad 6
 
Algoritmos de búsqueda
Algoritmos de búsquedaAlgoritmos de búsqueda
Algoritmos de búsqueda
 
Informe algoritmos de busqueda
Informe algoritmos de busquedaInforme algoritmos de busqueda
Informe algoritmos de busqueda
 
Documento de Busqueda Binaria
Documento de Busqueda BinariaDocumento de Busqueda Binaria
Documento de Busqueda Binaria
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
Algoritmo, Ordenacion y Búsqueda
Algoritmo, Ordenacion y BúsquedaAlgoritmo, Ordenacion y Búsqueda
Algoritmo, Ordenacion y Búsqueda
 
Aritmética Modular
Aritmética ModularAritmética Modular
Aritmética Modular
 
Informe aritmetica modular
Informe aritmetica modularInforme aritmetica modular
Informe aritmetica modular
 
Factorización de números semiprimos
Factorización de números semiprimosFactorización de números semiprimos
Factorización de números semiprimos
 
Infore de proyecto v1
Infore de proyecto v1Infore de proyecto v1
Infore de proyecto v1
 
Busqueda de datos
Busqueda de datosBusqueda de datos
Busqueda de datos
 
Introduccion Analisis Algoritmos
Introduccion Analisis AlgoritmosIntroduccion Analisis Algoritmos
Introduccion Analisis Algoritmos
 
Técnicas de Diseño Detallado.
Técnicas de Diseño Detallado.Técnicas de Diseño Detallado.
Técnicas de Diseño Detallado.
 
Informe Análisis Búsqueda Binaria
Informe Análisis Búsqueda BinariaInforme Análisis Búsqueda Binaria
Informe Análisis Búsqueda Binaria
 
Analisissss
AnalisissssAnalisissss
Analisissss
 
Diagramas De Flujo
Diagramas De FlujoDiagramas De Flujo
Diagramas De Flujo
 

Mais de Sergio Ormeño

Recorrido de grafos 1ra parte
Recorrido de grafos 1ra parteRecorrido de grafos 1ra parte
Recorrido de grafos 1ra parteSergio Ormeño
 
Recorrido de grafos 2da parte
Recorrido de grafos 2da parteRecorrido de grafos 2da parte
Recorrido de grafos 2da parteSergio Ormeño
 
Clasificacion de los problemas
Clasificacion de los problemasClasificacion de los problemas
Clasificacion de los problemasSergio Ormeño
 
Presentacion Algoritmo heapsort
Presentacion Algoritmo heapsortPresentacion Algoritmo heapsort
Presentacion Algoritmo heapsortSergio Ormeño
 
Complejidad de los algoritmos | Análisis de algoritmos
Complejidad de los algoritmos | Análisis de algoritmosComplejidad de los algoritmos | Análisis de algoritmos
Complejidad de los algoritmos | Análisis de algoritmosSergio Ormeño
 

Mais de Sergio Ormeño (8)

Ejercicios grafos
Ejercicios grafos Ejercicios grafos
Ejercicios grafos
 
Ejercicios grafos
Ejercicios grafosEjercicios grafos
Ejercicios grafos
 
Recorrido de grafos 1ra parte
Recorrido de grafos 1ra parteRecorrido de grafos 1ra parte
Recorrido de grafos 1ra parte
 
Recorrido de grafos 2da parte
Recorrido de grafos 2da parteRecorrido de grafos 2da parte
Recorrido de grafos 2da parte
 
Clasificacion de los problemas
Clasificacion de los problemasClasificacion de los problemas
Clasificacion de los problemas
 
Catedra grafos
Catedra grafosCatedra grafos
Catedra grafos
 
Presentacion Algoritmo heapsort
Presentacion Algoritmo heapsortPresentacion Algoritmo heapsort
Presentacion Algoritmo heapsort
 
Complejidad de los algoritmos | Análisis de algoritmos
Complejidad de los algoritmos | Análisis de algoritmosComplejidad de los algoritmos | Análisis de algoritmos
Complejidad de los algoritmos | Análisis de algoritmos
 

Último

Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaLuis Minaya
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxSIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxLudy Ventocilla Napanga
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJOLeninCariMogrovejo
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADOPLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADOMARIBEL DIAZ
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdfGabrieldeJesusLopezG
 
describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...DavidBautistaFlores1
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 
Tarea 4_ Foro _Incorporar habilidades de Siglo XXI
Tarea 4_ Foro _Incorporar habilidades de Siglo XXI Tarea 4_ Foro _Incorporar habilidades de Siglo XXI
Tarea 4_ Foro _Incorporar habilidades de Siglo XXI Manuel Molina
 
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsxJuanpm27
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfssuser50d1252
 
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docxMagalyDacostaPea
 
GUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIA
GUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIAGUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIA
GUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIAELIASPELAEZSARMIENTO1
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Rosabel UA
 

Último (20)

Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxSIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADOPLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
 
La luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luzLa luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luz
 
describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 
Tarea 4_ Foro _Incorporar habilidades de Siglo XXI
Tarea 4_ Foro _Incorporar habilidades de Siglo XXI Tarea 4_ Foro _Incorporar habilidades de Siglo XXI
Tarea 4_ Foro _Incorporar habilidades de Siglo XXI
 
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
 
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
 
GUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIA
GUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIAGUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIA
GUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIA
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024
 

Algoritmo Mitad Cuadrado

  • 1. INGENIERIA EN INFORMATICA Análisis de algoritmos Mitad del cuadrado Asignatura: Análisis de algoritmos Integrantes: Eduardo Leiva Jonathan García Sergio Ormeño Docente: Pilar Pardo H. Fecha: 16/04/2014
  • 2. 1 Contenido Introducción................................................................................................................................. 2 Algoritmos de Búsqueda ........................................................................................................... 3 Búsqueda Binaria:...................................................................................................................... 3 Búsqueda Lineal:........................................................................................................................ 3 Hashing........................................................................................................................................ 3 Truncamiento: ............................................................................................................................. 4 Plegamiento: ............................................................................................................................... 5 Aritmética Modular: .................................................................................................................... 5 Mitad del Cuadrado:................................................................................................................... 6 Caso Promedio ........................................................................................................................... 7 Peor Caso.................................................................................................................................... 7 Tratamiento de colisiones: ........................................................................................................ 8 Sondeo lineal............................................................................................................................... 8 Doble hashing ............................................................................................................................. 9 Encadenamiento de sinónimos ................................................................................................ 9 Direccionamiento por cubetas................................................................................................ 10 Cuadro comparativo de los métodos de búsqueda de un algoritmo................................ 10 Ventajas y Desventajas del Hashing..................................................................................... 11 Comportamiento de un Algoritmo .......................................................................................... 11 Ventajas y desventajas de los algoritmos ............................................................................ 11 Conclusión................................................................................................................................. 13
  • 3. 2 Introducción Los algoritmos son preciados procesos que nos hacen en si la vida un poco más ordenada a nivel de los que somos programadores o estamos inmersos en el mundo de la informática, claro está, existen los creadores de los algoritmos y aquellos que gozan del uso de estos en diferentes casos, La ciencia de un algoritmo en si es simplificar un problema en base a un conjunto de pasos que nos permitan resolver algo o satisfacer una necesidad. Pero, ¿cuantos tipos de algoritmos existen? ¿Solo nos limita a una cosa a la vez? ¿Cómo es que logran resolver algo de manera eficiente? ¿Que utilizan para su funcionamiento? Interrogantes como estas serán evaluadas dentro de este informe, en donde se detallara en base a conocimientos previos adquiridos en clases la temática de los algoritmos de Búsqueda, en este caso, repasando la mayoría de los más usados actualmente, los de más demanda, pero en si dejándonos un poco más de explicación sobre el tema algoritmo que nos convoca, “Mitad de Cuadrado” o “función cuadrática”.
  • 4. 3 Algoritmos de Búsqueda ¿Qué es una Búsqueda a nivel de análisis de algoritmos? Es una operación que busca un elemento X entre un conjunto de estos almacenados ya sea de manera digital o simplemente de manera manual. Búsqueda Binaria: Para utilizar la búsqueda binaria debemos tener la lista previamente ordenada de acuerdo al valor de la clave y conocer el número total de registros. La búsqueda binaria reduce el tiempo de búsqueda considerablemente ya que disminuye las iteraciones. Está altamente recomendado para buscar en listas de gran tamaño. Por ejemplo, en uno conteniendo 50.000.000 elementos, realiza como máximo 26 comparaciones (en el peor de los casos). Para implementar este algoritmo se compara el elemento a buscar con un elemento cualquiera de la lista, si el valor de éste es mayor que el del elemento buscado se repite el procedimiento en la parte de la lista que va desde el inicio hasta el elemento tomado, en caso contrario se toma la parte de la lista que va desde el elemento tomado hasta el final. De esta manera obtenemos intervalos cada vez más pequeños, hasta que se obtenga un intervalo indivisible. Si el elemento no se encuentra dentro de este último entonces se deduce que el elemento buscado no se encuentra en toda la lista. Búsqueda Lineal: La búsqueda secuencial se utiliza normalmente cuando la lista no está ordenada o no se puede ordenar previamente. Consiste en buscar el elemento llamado clave comparándolo con cada elemento de la lista (vector) hasta encontrarlo, o hasta que se llegue al final. Hashing ¿Qué es Hashing? Esta es una función que consiste en transformar claves numéricas o alfanuméricas en direcciones o índices de un vector. No es necesario que los elementos de la clave estén ordenados para poder realizar este tipo de búsqueda. Existen más, pero se contemplaran en este informe 4 métodos de transformación de claves que aún siguen en uso: Truncamiento, plegamiento, aritmética modular y mitad del cuadrado.
  • 5. 4 Haciendo un poco de historia, el término de hash (apodado Hashing un tiempo más tarde) proviene de una analogía que cuyo significado en ingles de dicha palabra se aplica al mundo real como el “picar y mesclar”. Donal Knuth afirma que H.P Luhn (empleado de IBM) fue el primero en utilizar el concepto en un memorándum fechado en enero de 1953, aun así se desconoce de su uso hasta 10 años después cuando se hizo masivo mediante un algoritmo creado y apodado SHA-1, este algoritmo se basaba en una función de división que tomaba palabras y las dividía usando funciones matemáticas seleccionadas especialmente para el lenguaje que interpretaba y tomaba por entrada. Truncamiento: En este método se ignora parte de la clave y se deja la parte restante como índice. Ejemplos:
  • 6. 5 Plegamiento: El plegamiento en si se puede definir en base a dos puntos importantes: o Se encarga de crear una partición de la clave en diferentes partes y combinarlas. o Todas las partes, a excepción de la última, deben tener el mismo número de dígitos que el tamaño del vector. Ejemplos: Aritmética Modular: Este método convierte la clave en un número entero, se divide por el tamaño del rango del índice y toma el resto como resultado. La función que se utiliza es el MOD (módulo o resto de la división entera). Fórmula: H(x)= x MOD m Ejemplos:
  • 7. 6 Mitad del Cuadrado: El Método del Cuadrado Medio de von Neumann consistía en el uso de un algoritmo en el cual al inicio se introduce un número cualquiera conformado por 10 dígitos, luego se calcula el cuadrado de ese número inicial, a continuación se toman exactamente los 10 dígitos ubicados en la mitad del número resultante, y ese número conformado por los 10 dígitos se toma como un nuevo número aleatorio que sirve para engrosar la secuencia aleatoria generada, al cual posteriormente se le puede aplicar de nuevo el algoritmo del cuadrado medio para así obtener sucesivamente más números aleatorios. El esquema de funcionamiento del algoritmo del Método del Cuadrado Medio propuesto por John von Neumann es el siguiente: Es decir en esta técnica, la llave es elevada al cuadrado, después algunos dígitos específicos se extraen de la mitad del resultado para constituir la dirección relativa. Si se desea una dirección de n dígitos, entonces los dígitos se truncan en ambos extremos de la llave elevada al cuadrado, tomando n dígitos intermedios. Las mismas posiciones de n dígitos deben extraerse para cada llave. El tamaño de los dígitos a escoger seria n
  • 8. 7 En el caso que la cifra resultante sea par: Los números centrales del resultado corresponden a la dirección. En caso de que la cifra sea impar: Se toma el dígito central y el anterior a ese dígito. Ejemplos: Lo que cabe señalar que el tamaño del vector no afecta directamente a la aplicación del método, pero afecta al tiempo de ejecución de la búsqueda. Produciendo que se ocupe más espacio en memoria. Caso Promedio: que el vector este con su índice vacío, así mismo que el método otorge una clave con una posición que se encuentre desocupada para así seguir llenando sin problemas ni colisiones. Peor Caso: que el índice (inicio) y la cola (final) estén ocupadas, que no se encuentre una posición de acuerdo a la clave obtenida y que el algoritmo se caiga, crashee o simplemente ocupe recursos al generar un loop infinito (dado que no habrá respuesta).
  • 9. 8 Tratamiento de colisiones: Algunas de las funciones hash presentan colisiones, es por eso que se debe saber qué hacer cuando a dos elementos diferentes les corresponde el mismo índice. ¿Qué es una colisión? Es cuando la función hash obtiene una misma dirección para dos claves diferentes. Al presentarse una colisión se requiere realizar un proceso adicional con el fin de encontrar una posición para la clave, cuando la función hash logra evitar que se produzcan colisiones se denomina Hashing perfecto. Para el tratamiento de colisiones existen 2 métodos: - Direccionamiento abierto: Se encuentra entre dirección de origen para K2 dentro del archivo. - Separación de desborde (Área de desborde): Se encuentra una dirección para K2 fuera del área principal del archivo, en un área especial de desborde, que es utilizada exclusivamente para almacenar registro que no pueden ser asignados en su dirección de origen Sondeo lineal Es una técnica de direccionamiento abierto. Este es un proceso de búsqueda secuencial desde la dirección de origen para encontrar la siguiente localidad, también conocida como método de desbordamiento consecutivo. Para almacenar un registro por Hashing con sondeo lineal, la dirección no debe caer fuera del límite del archivo. En lugar de terminar cuando el límite del espacio de dirección se alcanza, se regresa al inicio del espacio y sondeamos desde ahí. Por lo que debe ser posible detectar si la dirección base ha sido encontrada de nuevo, lo cual indica que el archivo está lleno y no hay espacio para la llave.
  • 10. 9 Para la búsqueda de un registro por Hashing con sondeo lineal, los valores de llave de los registros encontrados en la dirección de origen, y en las direcciones alcanzadas con el sondeo lineal, deberá compararse con el valor de la llave buscada, para determinar si el registro objetivo ha sido localizado o no. Doble Hashing En esta técnica se aplica una segunda función hash para combinar la llave original con el resultado del primer hash. El resultado del segundo hash puede situarse dentro del mismo archivo o en un archivo de sobre flujo independiente; de cualquier modo, será necesario algún método de solución si ocurren colisiones durante el segundo hash. La ventaja del método de separación de desborde es que reduce la situación de una doble colisión, la cual puede ocurrir con el método de direccionamiento abierto, en el cual un registro que no está almacenado en su dirección de origen desplazará a otro registro, el que después buscará su dirección de origen. Esto puede evitarse con direccionamiento abierto, simplemente moviendo el registro extraño a otra localidad y almacenando al nuevo registro en la dirección de origen ahora vacía. Puede ser aplicado como cualquier direccionamiento abierto o técnica de separación de desborde. Para ambas métodos para la solución de colisiones existen técnicas para mejorar su desempeño como: Encadenamiento de sinónimos Una buena manera de mejorar la eficiencia de un archivo que utiliza el cálculo de direcciones, sin directorio auxiliar para guiar la recuperación de registros, es el encadenamiento de sinónimos. Mantener una lista ligada de registros, con la misma dirección de origen, no reduce el número de colisiones, pero reduce los tiempos de acceso para recuperar los registros que no se encuentran en su localidad de origen. El encadenamiento de sinónimos puede emplearse con cualquier técnica de solución de colisiones. Cuando un registro debe ser recuperado del archivo, sólo los sinónimos de la llave objetivo son accesados.
  • 11. 10 Direccionamiento por cubetas Otro enfoque para resolver el problema de las colisiones es asignar bloques de espacio (cubetas), que pueden acomodar ocurrencias múltiples de registros, en lugar de asignar celdas individuales a registros. Cuando una cubeta es desbordada, alguna nueva localización deberá ser encontrada para el registro. Los métodos para el problema de sobrecupo son básicamente los mismos que los métodos para resolver colisiones. Cuadro comparativo de los métodos de búsqueda de un algoritmo
  • 12. 11 Ventajas y Desventajas del Hashing Ventajas: o Se pueden usar los valores naturales de la llave, puesto que se traducen internamente a direcciones fáciles de localizar o Se logra independencia lógica y física, debido a que los valores de las llaves son independientes del espacio de direcciones o No se requiere almacenamiento adicional para los índices Desventajas: o No pueden usarse registros de longitud variable o El archivo no está clasificado o No se permiten claves repetidas o Solo se permite acceso por una sola llave Comportamiento de un Algoritmo Caso Peor: mayor número posible de instrucciones ejecutadas por el algoritmo. Caso Mejor: menor número posible de instrucciones ejecutadas por el algoritmo. Caso Medio o promedio: número de instrucciones igual a la cantidad de instrucciones ejecutadas por el algoritmo. Ventajas y desventajas de los algoritmos Los algoritmos son la esencia de la informática, son uno de los centros de interés de muchas, si no todas, de las áreas del campo de la informática. o Puedes trabajar en orden. o Te redacta en orden paso a paso lo que hay que hacer. o Ayuda a resolver más fácil y rápido los problemas. o Disminuye sensiblemente el riesgo de errores. o Favorece el obtener el máximo de información.
  • 13. 12 Desventajas de un algoritmo: o Hay textos que desarrollan los algoritmos, mediante diversos tipos de programas, por ejemplo: el lenguaje de programación C++, pero para comprender las letras deben poseer al menos un año de experiencia en ese lenguaje de programación de alto y bajo nivel. o Muchos algoritmos interesantes llevan implícitos complicados métodos de organización de los datos utilizados en el calendo. o Con frecuencia sucede que muchos de los algoritmos que se van a utilizar son fáciles de implementan una vez que se ha descompuesto el programa, sin embargo, en la mayor parte de los casos, existen unos pocos algoritmos cuya elección es crítica porque su ejecución ocupara la mayoría de los recursos del sistema. o La elección del mayor algoritmo para una tarea particular puede ser un proceso muy complicado y con frecuencia conllevara un análisis matemático sofisticado. o Actualmente se está estudiando en la informática, como seleccionar el algoritmo que conduzca a la mejor implementación pues para la mayoría de los problemas existen varios algoritmos diferentes.
  • 14. 13 Conclusión Se han analizado las técnicas o métodos más utilizados en el ámbito de posicionamiento, búsqueda y transformación de claves en relación a vectores, dado esto se puede inferir a que cada método tiene su propio modo de operar en base a algoritmos que dependiendo de lo que hagan nos brindaran una respuesta más rápida y eficiente a lo que buscamos, según sea el topo dato alfanumérico o carácter a posicionar o buscar, esto nos lleva a nuestro tema, “mitad de cuadrado” o “función cuadrática” un método de transformación derivado como un sub método del Hashing el cual nos ayuda a posicionar dentro de un arreglo vector o matriz una clave que según sea la posición ira donde calce, dado esto, los métodos se complementan entre otros, pero se concluye que todos son dependientes en su mayoría del truncamiento al momento de querer enfrentar colisiones según sea el tamaño del vector y de la clave a posicionar, búsqueda lineal y binaria solo dan con un número que se desee, entra en el ámbito búsqueda, por lo tanto se diferencian del Hashing puesto que es un método de transformación y a nuestro entender, el que entra primero en acción es el Hashing para luego tener algo que buscar.