Metodos de to y Busqueda

download Metodos de to y Busqueda

of 22

Transcript of Metodos de to y Busqueda

Mtodos de Ordenamiento y Bsqueda

Comp. e Inf. - TEC

INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO PRIVADO TEC .

METODOS DE ORDENAMIENTO Y BUSQUEDA

1

Mg . NILTON CESAR AYRA APAC

UCAYALI PERU 2011

Mtodos de Ordenamiento y Bsqueda

Comp. e Inf. - TEC

METODOS DE ORDENAMIENTO Y BUSQUEDAMuchas actividades humanas requieren que en ellas las diferentes colecciones de elementos utilizados se coloquen en un orden especfico. Las oficinas de correo y las empresas de mensajera ordenan el correo y los paquetes por cdigos postales con el objeto de conseguir una entrega eficiente; los anuarios o listines telefnicos ordenan sus clientes por orden alfabtico de apellidos con el fin ltimo de encontrar fcilmente el nmero de telfono deseado; Por esta circunstancia una de las tareas que realizan ms frecuentemente las computadoras en el procesamiento de datos es la ordenacin. El estudio de diferentes mtodos de ordenacin es una tarea intrnsecamente interesante desde un punto de vista terico y, naturalmente, prctico. En esta ocasin se estudia los algoritmos y tcnicas de ordenacin ms usuales y su implementacin en C++. De igual modo se estudiar el anlisis de los algoritmos utilizados en diferentes mtodos de ordenacin con el objetivo de conseguir la mxima eficiencia en su uso real. Cuando tenemos poca informacin es fcil manejar esta informacin pero cuando tenemos una buena cantidad de informacin las cosas cambian, tal es el caso por ejemplo si queremos pedir las notas de un alumno que tiene un cdigo determinado, si tenemos ordenados ser ms fcil ubicarlo a travs de un mtodo de bsqueda, para luego relacionarlo con sus notas, pero si no se tiene ordenado tendremos que empezar a buscar registro por registro y si nos imaginamos que tenemos ms de 3000 alumnos, cuanto tiempo creen que nos demoraremos?, por ello se dice que: todo lo que se ordena se puede controlar, todo lo que se controla se administra y todo lo que se administra se puede gerencia. Antes de comenzar a ver cada algoritmo tenemos que saber algunas terminologas importantes:

2

Mtodos de Ordenamiento y Bsqueda

Comp. e Inf. - TEC

BASE DE DATOS Conjunto de datos clasificados, por ejemplo, tendremos una estructura que almacena los apellidos en una sola columna, los nombres en otra, los telfonos en otro, etc CAMPO Parte de la datos que identifica a un tipo de informacin que se almacenara en esa parte, por ejemplo en el campo telfono, solo se almacenaran nmeros telefnicos, Ud. no encontrara en ese campo los apellidos o nombres u otro dato distinto al telfono, adems ser de un tipo determinado, por ejemplo, numrico, carcter o lgico. Adems si se quiere ordenar una base de datos se tiene que escoger un campo, y en base a ese campo se procede a ordenar, no se puede escoger dos campos para ordenar, por ejemplo si se ordena por apellidos se proceder hacerlo alfabticamente, pero no se podr ordenar en el mismo instante por nmero de telfono. El campo seleccionado para proceder se llama ndice otros lo llaman clave. REGISTRO Es un conjunto de campos agrupandos, normalmente pertenecen a un solo elemento, en nuestro ejemplo a una sola persona, normalmente en un registro no se repiten los campos, no podremos tener un registro con dos campos de nombre telfono, lo que si podemos tener es un campo con nombre telfono y el otro telefono2. CRITERIO DE ORDENAMIENTO Es el algoritmo que usaremos para ordenar, por ejemplo podramos escoger ordenar por nmero de DNI pero en forma ascendente TIEMPO DE EJECUCION Es el tiempo que demora en ordenar, encontrar o mezclar los datos, cuando se tiene pocos registros no se ve mucho la diferencia, pero cuando se tiene miles de registros el tiempo de duracin es importarte, porque ser decisivo para decidir que algoritmo escoger, en nuestro caso diramos, el que haga menor cantidad de

3

Mtodos de Ordenamiento y Bsqueda

Comp. e Inf. - TEC

comparaciones y/o interacciones ser el menos complejo, pero eso no significa que ser el mas rpido. USO DE MEMORIA Normalmente cuando la Base de Datos es pequea todo se hace en la memoria RAM y no se necesita acceder al disco duro, pero cuando tenemos una Base de Datos de miles de Registros en necesario usar el disco duro como memoria complementaria, por lo que la velocidad de procesamiento se ver afectado, por la velocidad de E/S de datos METODOS DE ORDENAMIENTO MS COMUNES Como ejercicios de aprendizaje veremos cuatro tipos de ordenamiento, los ms usados: Ordenamiento por Burbuja Ordenamiento por Seleccin Ordenamiento por Insercin Ordenamiento Rpido No necesariamente significa que el ms rpido es el que nos conviene, sino tenemos que evaluar, varios criterios como es: La cantidad de registros, si son pocas, normalmente no tienes mucho que hacer, no veras la diferencia en tiempos, porque uno frente al otro solo tomara segundos de diferencia Cantidad de memoria que necesita, hay algoritmos de ordenamiento que necesitan buena cantidad de memoria RAM, por lo que si nuestro equipo de cmputo tiene poca memoria, el algoritmo usara al disco duro como apoyo, por lo que se sabe que se har ms lento. Tipo Campo a ordenar, algunos mtodos de ordenamiento funcionan mejor si son numricos o alfabticos mientras que otros no tienen diferencia 1. ORDENAMIENTO POR BURBUJA Se le conoce tambin como ordenamiento por intercambio, es el algoritmo mas sencillo, su principio es comparando elementos adyacentes de dos en dos desde el inicio hasta el final, por lo que diramos que si el elemento actual es mayor que el que est en la siguiente posicin se intercambian.

4

Mtodos de Ordenamiento y Bsqueda

Comp. e Inf. - TEC

Diagrama de Flujoinicio

Repetir desde i = 1, hasta TAM, i mas 1

Repetir desde J=0, hasta TAM-1, j mas 1

5si lista[j] > temp = lista[j] lista[j] = lista[j+1] lista[j+1] = temp

Fin

Pseudocdigo

for (i=1; ilista [j]

Pos_men=j

Temp=lista[i] Lista[i]=lista[pos_men] Lista[pos_men]=temp Pos_men=i+1

Fin

Mtodos de Ordenamiento y Bsqueda

Comp. e Inf. - TEC

7

Mtodos de Ordenamiento y Bsqueda Peudocodigo

Comp. e Inf. - TEC

pos_men=0; for (i=0; i temp) y (j >= 0 )

9

Lista[j+1]=lista[j] j-lista[j+1]=temp

Fin

Donde: TAM i,j lista temp : : : : Es la cantidad de elementos Contador tipo entero Es el arreglo a ordenar Variable temporal del mismo tipo de lo que se declar lista

for (i=1; i temp) && (j >= 0) ) { lista[j+1] = lista[j]; j--; } lista[j+1] = temp; }

Mtodos de Ordenamiento y Bsqueda

Comp. e Inf. - TEC

4. Ordenamiento Rpido (Quicksort) Es uno de los mtodos ms rpidos en lo que concierne a ordenamiento, desarrollada en los aos 1960 1970 por C.A.R. Hoare, el principio con que enmarca este mtodo es por el principio de que es ms fcil ordenar dos listas pequeas que una lista grande (divide y vencers), lo que se hace es dividir la lista en dos listas, una con valores menores o iguales a un valor y la otra con valores mayores al valor en referencia (el valor es a tomar es cualquiera, por lo que se le denomina pivote). Diagrama de flujoinicio

Izq=inf Der=sup Mitad=redondear((izq+der)/2) Hacer si Izq