UNIDAD DOS: ORDENACION Y BUSQUEDA. ACTIVIDAD UNO: IDENTIFICACION DE METODOS DE BUSQUEDA.
NOMBRE DEL ALUMNO: CABRERA HERNNDEZ ROBERTO
MATRICULA: AL12504228
FACILITADOR: CARMEN GOMEZ PEREZ
FECHA: 22/03/2014
CUATRIMESTRE: SEXTO
CORREO ELECTRNICO: AL12504228@unadmexico.mx
OPCIONAL: shagadelico09051980@yahoo.com
ACTIVIDAD UNO: IDENTIFICACION DE METODOS DE BUSQUEDA.
1. Definicin de mtodos bsqueda: Es la operacin que tiene como objetivo la localizacin de un elemento dentro de la estructura de datos. Por lo regular el programador trabaja grandes cantidades de datos almacenados en arreglos y se puede decir que el arreglo contiene valores claves de manera que se pueda buscar o encontrar con facilidad. Como se ha visto en la unidad anterior el array de una dimensin o lista de estructura o acceso secuencial encontramos dos tcnicas para este tipo de mtodos, uno es la bsqueda lineal y bsqueda binaria. Otra definicin de bsqueda en el portal internet es el proceso de localizar un registro (elemento) con un valor de llave particular. La bsqueda termina exitosamente cuando se localiza el registro que contenga la llave buscada, o termina sin xito, cuando se determina que no aparece ningn registro con esta llave. A continuacin se menciona cada una de estas y su definicin. 2. Bsqueda secuencial: La bsqueda secuencial, tambin se conoce como bsqueda lineal. Supongamos una coleccin de registros organizados como una lista lineal. El algoritmo bsico de bsqueda secuencial consiste en empezar al inicio de la lista e ir a traves de cada registro hasta encontrar la llave indicada (k), o hasta al final de la lista. Tambin se encuentra como una tcnica simple para buscar un elemento en un arreglo la cual consiste en recorrer el arreglo elemento a elemento e ir comparando con el valor buscado en este caso una clave. Ejemplo: la primera casilla del arreglo se puede decir que se debe de encontrar el elemento buscado y visto en todas las casillas. De esta manera se obtendra como resultado un solo valor, y la posicin del elemento es cero. La bsqueda lineal funciona bien en arreglos pequeos u ordenados en este caso. A continuacin le dejo un ejemplo sencillo que me llamo la atencin del mtodo lineal en java: Se considera un arreglo representado de la siguiente manera: 1. Tenemos un arreglo de tamao 50 2. Luego el programa buscara el numero 41 por lo cual intentara buscar los rangos 3. Una vez que el algoritmo encuentre coincidencias mostrara la posicin del elemento encontrado. 4. En este caso nos da un rango del indice 27.
Pantallas en NetBeans: Pantalla uno:
Pantalla dos:
Pantalla tres:
Pantalla cuatro:
Pantalla final y resultados:
3. En este caso tambin la bsqueda secuencial indexada es un mtodo popular donde el archivo secuencial indexado implica un aumento en la cantidad de espacio requerida. Una de las caractersticas de este indice consta de una llave kindex y un apuntador al registro en el archivo que corresponda al mismo. Les dejo un pequeo cdigo como ejemplo: PROCEDURE B_S_INDEXADA (llave:integer; var pocis:integer); var i,n:integer; f:boolean; begin f:=false; i:=1; while (i<llave) then f:= true; else inc(i); if i=1 then linf:=1 else linf:=pindex[i-1]; if f then lsup:=pindex[i]-1 else lsup:=n; j:=linf; f:=false; while(j<=lsup) ands (not f) do if k[j]="llave" then f:="true" else inc(j); if f then posic:="j" else posic:="0;" end;
4. Bsqueda binaria: Es el mtodo ms eficiente para encontrar elementos en un arreglo ordenado. El proceso comienza comparando el elemento central del arreglo con el valor buscado. Si ambos coinciden finaliza la bsqueda. Si no ocurre as, el elemento buscado ser mayor o menor en sentido estricto que el central del arreglo. Si el elemento buscado es menor que el contenido de la casilla central se debe de cambiar el segmento a considerar al segmento que est a la izquierda de tal sitio central. Si los datos que se buscan estn clasificados en un determinado orden, el mtodo citado anteriormente se denomina bsqueda binaria. La bsqueda binaria utiliza un mtodo de divide y vencers para localizar el valor deseado. Con este mtodo se examina primero el elemento central de la lista; si este es el elemento buscado, entonces la bsqueda ha terminado. A continuacin le dejo un ejemplo sencillo que me llamo la atencin del mtodo binario en java: Se considera un algoritmo de edades en este caso utilizando lenght es decir la longitud de la cadena o del arreglo en un entero este representado de la siguiente manera: 5. Tenemos un arreglo entero de 35 6. Luego el programa buscara la cadena de edades de 28 a 35 7. Una vez que el algoritmo encuentre coincidencias mostrara el rango encontrado. 8. En este caso nos da un rango encontrado 3.
Pantalla uno:
Pantalla dos:
Pantalla final:
5. Bsqueda por interpolacin: Consiste en tratar de acertar en que parte del intervalo est la clave que se est buscando en lugar de ciegamente dividir el arreglo a la mitad. Para ello se utiliza la siguiente frmula: X= izq + (key-a[izq]. Key)*(der izq)/(a[der].key-a[izq].key) /0 A continuacin le dejo un ejemplo sencillo que me llamo la atencin del mtodo de bsqueda por interpolacin en java: Se considera un algoritmo de interpolacin hermite 1. Se digita la aproximacin 2. Los valores de imagen y de X 3. Se aplica la formula y el numero de cocientes 4. Se aplican las variables que nos darn el resultado de H Pantalla uno:
Pantalla dos:
Pantalla tres:
Pantalla cuatro:
Pantalla cinco:
Pantalla seis:
Nota: Les imprimo las primeras siete pantallas, sin embargo faltan pero la verdad el documento estar pesado. Espero comprendan que la actividad es muy picada y me gustara practicar mas y poner ms ejemplos. Pantalla final:
6. Menciona y ejemplifica en qu casos conviene aplicar cada uno de los mtodos de bsqueda (secuencial, binaria e interpolacin).
Mtodo de bsqueda secuencial:
Bueno por lo que he observado los archivos secuenciales tienden a un orden lgico y se procesa al azar. Un ejemplo seria la probabilidad de nmeros de la lotera o que el programa indicara a los diez promedios ms altos de una escuela. Es decir la bsqueda secuencial permite realizar ndices pequeos a lo ms grande. Por lo que nuestro programa se reduce los registros y los resultados son ms exactos.
Mtodo de bsqueda binaria:
En este mtodo se localiza el valor deseado y se examina cada elemento central. En este caso los arboles binarios de bsqueda de datos de la llave y los valores de la lista ordenada.
Un ejemplo seria en el INEGI buscar datos o fechas que ayuden a descifrar datos requeridos al momento. Los datos podran ser fechas de la poblacin de 1950 al 2013.
Mtodo de bsqueda interpolacin:
En este mtodo puedo decir que las tablas y los archivos son ordenados, en este caso se requiere de la aritmtica y clculos ms elaborados, en lo personal considero que es la ms difcil de las otras dos. Y de alguna manera la ecuacin del mtodo es muy compleja. Un ejemplo seria realizar cualquier operacin matemtica para encontrar el valor o el tamao de los parmetros. En este caso resolver un problema matemtico o en el caso de los ingenieros de software, resolver una necesidad del usuario, por ejemplo las aplicaciones de hoy en da ayudan a cubrir ese sector a los usuarios. 7. Menciona de forma clara y puntual las ventajas y desventajas de utilizar cada uno de los mtodos de bsqueda vistos a lo largo de la Unidad 2.
Mtodo de bsqueda secuencial:
Ventajas:
1. Es un algoritmo sencillo de bsqueda 2. No requiere ningn proceso previo de tabla 3. Conocimiento sobre las llaves 4. La bsqueda del problema es directo 5. Es el mejor mtodo que consiste en observar lo que solicita cada registro de acuerdo a las probabilidades de acceso detectadas. Desventajas: 1. El mtodo de bsqueda es lento 2. Los datos no estn ordenados 3. Sin no se tiene una llave particular, se requiere buscar en toda la lista 4. Para las aplicaciones interactivas su rendimiento es pobre 5. La bsqueda secuencial es el mtodo menos eficiente.
Mtodo de bsqueda binaria:
Ventajas:
1. Es un mtodo eficiente ya que el vector es ordenado. 2. El mtodo binario proporciona una ordenacin en todos sus archivos 3. Su mayor ventaja es que los archivos son extensos. 4. Es un mtodo eficiente en buscar en una lista ordenada sin emplear tablas o ndices adicionales.
Desventajas: 1. El archivo debe de estar ordenado y almacenado correctamente 2. No revisa todos los elementos del archivo 3. Esta bsqueda de archivos es enorme y pude ser muy costoso
Mtodo de bsqueda interpolacin:
Ventajas:
1. La bsqueda es mucho mejor que la binaria en la prctica, principalmente por el tamao del logaritmo. 2. Incluso suele ser el ms complejo pero puede proporcionar una importante bsqueda de resultados ya que las claves o llaves estn distribuidas de modo uniforme. Desventajas: 1. La bsqueda de la interpolacin requiere una aritmtica ms elaborada, los clculos de la bsqueda pueden ser lentos. 2. Para lograr esta bsqueda se necesita llaves, multiplicaciones y divisiones complejas, clculos de nivel alto.
8. Redacta un caso e indica qu mtodo de bsqueda resulta ms eficiente en su uso. En lo personal el primer mtodo es muy sencillo, sin embargo tambin se corre el riesgo de equivocarse y cometer errores de captura. El ejemplo que expuse e imprim pantallas fue un ejemplo que el anterior cuatrimestre se haba trabajado muy poco. Ya que en este inicio se trabajo en la primera unidad las pilas, colas y listas. Se considera un arreglo representado de la siguiente manera: 1. Tenemos un arreglo de tamao 50 2. Luego el programa buscara el numero 41 por lo cual intentara buscar los rangos 3. Una vez que el algoritmo encuentre coincidencias mostrara la posicin del elemento encontrado. 4. En este caso nos da un rango del indice 27. En este caso tambin se podra ocupar un listado de una lista de libros por autor, fecha o de mayor a menor y que encuentre las coincidencias del libro que queremos encontrar. Y al menos todava no me siento muy preparado para esto, y yo ocupara el mtodo de secuencial.
Bibliografa: 1. Facultad de Ingeniera (2014). Mtodos de Bsqueda. Recuperado de la pagina web en (http://informatica.uppuebla.edu.mx/~abenitez/cursos/busqueda.pdf
2. UNADM (2014). Ingeniera en Desarrollo de Software. Estructura de datos. Unidad dos: ordenacin y bsqueda. Recuperado de la pgina web en http://207.249.20.68/Ds20141C/file.php/57/Unidad_2/DEDA_Unidad_2._Ordenacio_n_y_bu_sq ueda.pdf