Académique Documents
Professionnel Documents
Culture Documents
ESTRUCTURA DE DATOS.
ENSAYO. -Unidad V: Mtodos de ordenamiento. -Unidad VI: Mtodos de bsqueda.
Carrera: ING. EN INFORMATICA. Alumno: MARTIN GARCIA ROSALES. Prof.: L.I. JOS LUIS MARTNEZ ALCANTAR. Semestre: 3ero. Grupo: G No. Control: 12650183
ORDENACIN DE ARREGLOS.
Tambin llamada ordenacin interna ya que los elementos o componentes del arreglo se encuentran en la memoria principal de la computadora.
ORDENACIN DE ARCHIVOS.
Tambin llamada ordenacin externa, ya que los elementos se encuentran en archivos almacenados en dispositivos de almacenamiento secundario, como discos, USB etc. A continuacin se muestran los mtodos de ordenacin internos.
ORDENACION INTERNA.
ORDENACION POR INTERCAMBIO DIRECTO (BURBUJA) Mtodo de intercambio directo o de burbuja, es el ms utilizado por los programadores novatos, pero es quizs el mtodo ms ineficiente. Este mtodo trabaja de dos maneras distintas: Llevando los elementos ms pequeos hacia la parte izquierda del arreglo. Llevando los elementos ms pequeos hacia la parte derecha del arreglo.
Se realizan (n-1) pasadas transportando en cada una de ellas el menor o mayor de los elementos a su posicin idnea. Los elementos estarn ordenados al final de (n-1) pasadas. Ejemplo. Se desea ordenar los siguientes nmeros en un arreglo unidimensional. A: 15 67 08 16 44 27 12 35
PRIMERA PASADA. A(7) >A(8) (12>35) NO HAY INTERCAMBIO. A(6) >A(7) (27>12) SI HAY INTERCAMBIO. A(5) >A(6) (44>12) SI HAY INTERCAMBIO. A(4) >A(5) (16>12) SI HAY INTERCAMBIO. A(3) >A(4) (08>12) NO HAY INTERCAMBIO. A(2) >A(3) (67>08) SI HAY INTERCAMBIO. A(1) >A(2) (67>08) SI HAY INTERCAMBIO. Despus de la primera pasada el arreglo queda as: A: 08 15 67 12 16 44 27 35 SEGUNDA PASADA. A(7) >A(8) (27>35) NO HAY INTERCAMBIO. A(6) >A(7) (44>27) SI HAY INTERCAMBIO. A(5) >A(6) (16>27) NO HAY INTERCAMBIO. A(4) >A(5) (12>16) NO HAY INTERCAMBIO. A(3) >A(4) (67>12) SI HAY INTERCAMBIO. A(2) >A(3) (15>12) SI HAY INTERCAMBIO. Al trmino de la segunda pasada el arreglo queda as: A: 08 12 15 67 16 27 44 35 TERCERA PASADA. A: 08 12 15 16 67 27 35 44 CUARTA PASADA. A: 08 12 15 16 27 67 35 44 QUNITA PASADA. A: 08 12 15 16 27 35 67 44 SEXTA PASADA. A: 08 12 15 16 27 35 44 67 SEPTIMA PASADA.
A: 08 12 15 16 27 35 44 67 En el ejemplo de utilizo el algoritmo de ordenamiento en el que cada pasada el menor elemento se recorre a la parte izquierda del arreglo. El nmero de movimientos sern respecto a las frmulas matemticas siguientes: Mmin=0 Mmax= 1.75 * (n^2-n) n= nmero de elemento a ordenar. ORDENACION POR EL METODO SHELLSORT Es una versin mejorada del mtodo de ordenacin por insercin directa, que se utiliza cuando el nmero de elementos es grande. Este mtodo recibe su nombre gracias a su creados Donald L. Shell, tambin se conoce con el nombre insercin con incrementos decrecientes. En este mtodo se propone que las comparaciones entre elementos se efecten con saltos de mayor tamao, pero con incrementos decrecientes, de esta manera quedan ordenados ms rpido los elementos. Ejemplo: Se tiene un arreglo de 16 elementos. 1. Se dividirn los elemento del arreglo en 8 grupos, teniendo en cuenta los elementos que se encuentran a ocho posiciones de distancia entre si y se ordenaran por separado. 2. En el primer grupo quedan los elementos A(1), A(9), en el segundo A(2), A(10), en el tercero A(3), A(11), en el cuarto A(4), A(12), sucesivamente. 3. Se dividirn los elementos en cuatro grupos teniendo en cuenta los elementos que se encuentran a cuatro posiciones de distancia entre si y se ordenaran por separado. 4. En el primer grupo quedan los elementos A(1), A(5),A(9), A(13); en el segundo A(2), A(6),A(10), A(14), sucesivamente. 5. En este paso se dividirn los elementos del arreglo en grupos teniendo en cuenta los elementos que se encuentran a dos posiciones de distancia entre si y se ordenaran por separado. 6. En el primer grupo quedaran A(1), A(3),A(5), A(7) A(9), A(11),A(13), A(15); y en el segundo A(2), A(4),A(6), A(8) A(10), A(12),A(14), A(16). 7. Finalmente se agruparan y ordenaran de manera normal, de uno en uno. A= 15 67 08 16 44 27 12 35 56 21 13 28 60 36 07 10 PRIMERA PASADA. Se dividen los elementos en 8 grupos A= 15 67 08 16 44 27 12 35 56 21 13 28 60 36 07 10 Mmed= 0.75 * (n^2-n)
(Un color es igual a un grupo). La ordenacin se produce: A= 15 21 08 16 44 27 07 10 56 67 13 28 60 36 12 35 SEGUNDA PASADA. Se dividen los elementos en 4 grupos. A= 15 21 08 16 44 27 07 10 56 67 13 28 60 36 12 35 (Un color es igual a un grupo). La ordenacin se produce: A= 15 21 07 10 44 27 08 16 56 36 12 28 60 67 13 35 TERCERA PASADA. Se dividen los elementos en 2 grupos. A= 15 21 07 10 44 27 08 16 56 36 12 28 60 67 13 35 (Un color es igual a un grupo). La ordenacin se produce: A= 07 10 08 16 12 21 13 27 15 28 44 35 56 36 60 67 CUARTA PASADA. Se dividen los elementos en un solo grupo: A= 07 10 08 16 12 21 13 27 15 28 44 35 56 36 60 67 La ordenacin se produce: A= 07 08 10 12 13 15 16 21 27 28 35 36 44 56 60 67 ORDENACION POR EL METODO QUICKSORT Es actualmente el ms eficiente y veloz de los mtodos de ordenacin interna, tambin conocido como mtodo rpido y de ordenacin por particin. Es una mejora sustancial del mtodo de intercambio directo, llamado QUICKSORT (rpido) por la velocidad en que ordena los elementos del arreglo. La idea central de ests algoritmo argumenta: 1. Se toma un elemento X de una posicin cualquiera del arreglo. 2. Se trata de ubicar a X en la posicin correcta del arreglo, de tal forma que todos los elementos que se encuentran a su izquierda sean menores o iguales a X y todos los que se encuentren a su derecha sean mayores o iguales a X. 3. Se repiten los pasos anteriores, pero ahora para los conjuntos de datos que se encuentran a la izquierda y a la derecha de la posicin X en el arreglo. 4. El proceso termina cuando todos los elementos se encuentran en su posicin correcta en el arreglo. Ejemplo. Se quiere ordenar los elementos que se encuentran en el arreglo. A= 15 67 08 16 44 27 12 35 Se seleccin X al azar X= 15
PRIMERA PASADA. Recorrido de derecha a izquierda. A(8)X A(7) X (3515) NO HAY INTERCAMBIO (1215) SI HAY INTERCAMBIO
A= 12 15 08 16 44 27 67 35 SEGUNDA PASADA. Recorrido de derecha a izquierda. A(6) X A(5) X A(4) X A(3) X (2715) (4415) (1615) (0815) NO HAY INTERCAMBIO NO HAY INTERCAMBIO NO HAY INTERCAMBIO SI HAY INTERCAMBIO
A= 12 08 15 16 44 27 67 35 Como el recorrido de izquierda a derecha se debera de iniciar en la misma posicin donde se encuentra el elemento X, el proceso termina ya que se detecta que el elemento X se encuentra en la posicin correcta. Es de resaltar que los elementos que forman parte del primer conjunto son menores o iguales a X, y los del segundo conjunto son mayores o iguales a X. A= 12 08 15 16 44 27 67 35 12 08= primer conjunto, 16 44 27 67 35= segundo conjunto, 15=X Este proceso de particionamiento aplicado para localizar la posicin correcta de un elemento X en el arreglo se repite cada vez que queden conjuntos formados por dos o ms elementos. TERCERA PASADA. A= 12 08 15 16 44 27 67 35 CUARTA PASADA. A= 12 08 15 16 35 27 44 67 QUINTA PASADA.
ORDENACION POR EL METODO RADIX. Este mtodo ordena los elementos procesando en forma individual los elementos, este mtodo no est limitado solo a enteros.Este mtodo se puede considerar como una generalizacin de la clasificacin por urnas. Consiste en hacer diversos montones de fichas, cada uno caracterizado por tener en sus componentes un mismo digito en la misma posicin; estos montones se recogen en orden ascendente y se reparte en montones segn el siguiente digito de la clave. EJEMPLO. Se pretende ordenar esta serie de elementos. A= 345, 721, 425, 572, 836, 467, 672, 194, 365, 236, 891, 746, 431, 834, 247, 529, 216, 389 1. Ordenarlos por unidades, de menor a mayor de izquierda a derecha.
216 431 891 721 1 672 572 2 834 194 4 365 425 345 5 746 236 836 6 247 467 7 389 529 9
PRIMER PASADA. A= 721, 891, 431, 572, 672, 194, 834, 345, 425, 365, 836, 236, 746, 216, 467, 347, 529, 389
SEGUNDA PASADA. A= 216, 721, 425, 529, 431, 834, 866, 236, 345, 746, 247, 365, 467, 572, 672, 389, 891, 194 3. Distribuimos la secuencia respecto al tercer digito.
247
389
467
891
236
365
431
572
746
836
194
216
345
425
529
672
721
834
TERCERA PASADA. A= 194, 216, 236, 247, 345, 365, 389, 425, 431, 467, 529, 572, 672, 721, 746, 834, 836, 891 (resultado)
ORDENACION EXTERNA.
ORDENACIN POR EL MTODO DE INTERCALACIN. Por intercalacin de archivos se entiende la unin o fusin de dos o ms archivos ordenados de acuerdo con un determinado campo clave, en un solo archivo. EJEMPLO: Suponga que se tienen dos archivos F1 y F2, cuya informacin esta ordenada de acuerdo con un campo clave. F1:06 09 18 20 35 F2:10 16 25 28 66 82 87 Se debe de producir entonces un archivo F3 ordenado como resultado de la mezcla de F1 y F2. Solo se pueden acceder directamente a dos clases, la primera del archivo F1 y la segunda del archivo F2. F1: 06 09 18 20 35 F2: 10 16 25 28 66 82 87 Las comparaciones realizadas para producir el archivo F3 son: (06<10) Si se cumple la condicin. Se escribe 06 en el archivo de salida F3 y se vuelve a leer otra clave de F1 (09). (09<10) Si se cumple la condicin. Se escribe 09 en el archivo de salida F3 y se vuelve a leer otra clave de F1 (18). (18<10) No se cumple la condicin. Se escribe 10 en el archivo F3 y se vuelve a leer otro dato clave de F2 (16). El estado de los archivos F1, F2 y F3 hasta el momento es el siguiente. El color verde seala el ltimo elemento ledo de los archivos que se estn intercalando. F1: 06 09 18 20 35 F2: 10 16 25 28 66 82 87 F3: 06 09 10 El proceso continuo hasta que en uno u otro archivo se detecte su final; en tal caso solo se tendr que copiar la informacin del archivo no vaco al archivo de salida F3. El resultado final de la intercalacin entre los archivos F1 y F2 es: F3: 06 09 10 16 18 20 25 28 35 66 82 87
ORDENACIN POR EL MTODO DE MEZCLA DIRECTA. El mtodo de mezcla directa es probablemente el ms utilizado por su fcil comprensin. La idea central de este algoritmo consiste en la realizacin sucesiva de una particin y una fusin que produce secuencias ordenadas de longitud cada vez mayor. En la primera pasada la particin de longitud es de 1 y la fusin o mezcla produce secuencias ordenadas de longitud 2. En la segunda pasada la particin de longitud es de 2 y la fusin o mezcla produce secuencias ordenadas de longitud 4. Este proceso se repite hasta que la longitud de la secuencia para la particin sea: Parte entera ((n+1)/2) Donde n es el nmero de elementos a ordenar. EJEMPLO. Se desea ordenar las claves del archivo F, para darle orden se crearan dos archivos auxiliares que se llamaran F1 y F2. F= 09 75 14 68 29 17 31 25 04 05 13 18 72 46 61 PRIMERA PASADA. Particin en secuencia de longitud 1. F1= 09` 14` 29` 31` 04` 13` 72` 61` F2= 75` 68` 17` 25` 05` 18` 46` Fusin en secuencias de longitud 2. F= 09 75` 14 68` 17 29` 25 31` 04 05` 13 18` 46 72` 61` SEGUNDA PASADA. Particin en secuencia de longitud 2. F1= 09 75` 17 29` 04 05` 46 72` F2= 14 68` 25 31` 13 18` 61` Fusin en secuencias de longitud 4. F= 09 14 68 75` 17 25 29 31` 04 05 13 18` 46 61 72` TERCERA PASADA. Particin en secuencia de longitud 4.
F1= 09 14 68 75` 04 05 13 18` F2= 17 25 29 31` 46 61 72` Fusin en secuencias de longitud 8. F= 09 14 17 25 29 31 68 75` 04 05 13 18 46 61 72` CUARTA PASADA. Particin en secuencia de longitud 8. F1= 09 14 17 25 29 31 68 75` F2= 04 05 13 18 46 61 72` Fusin en secuencias de longitud 16. F= 04 05 09 13 14 17 18 25 29 31 46 61 68 72 75 (resultado) ORDENACIN POR EL MTODO DE MEZCLA NATURAL. El mtodo de ordenacin por mezcla equilibrada, tambin conocido como mezcla natural, es una optimizacin del mtodo de mezcla directa. La idea central de este algoritmo consiste en realizar las particiones tomando secuencias ordenadas de mxima longitud en lugar de secuencias de tamao fijo previamente determinadas. Para la realizacin de este proceso de ordenacin se necesitaran cuatro archivos, el archivo original F y tres archivos auxiliares denominados F1, F2 y F3. Dos archivos sern considerados de salida y dos de entrada, alternando. El proceso termina cuando en la realizacin de una fusin-particin el segundo archivo quede vaco. EJEMPLO. Se desea ordenar las claves del archivo F por el mtodo de mezcla natural. F= 09 75 14 68 29 17 31 25 04 05 13 18 72 46 61 PARTICION INICIAL. F2= 09 75 29 25 46 61 F3= 14 68 17 31 04 05 13 18 72 PRIMERA FUSION-PARTICION F= 09 14 68 75 04 05 13 18 25 46 61 72 F1= 17 29 31
SEGUNDA FUSION-PARTICION F2= 09 14 17 29 31 68 75 F3= 04 05 13 18 25 46 61 72 TERCERA FUSION PARTICION. F= 04 05 09 13 14 17 18 25 29 31 46 61 68 72 75 (resultado) F1= Al realizar la tercera fusin-particin el segundo archivo queda vaco, de manera automtica se sabe que el archivo ha quedado ordenado.
COMPARACION ENTRE LOS METODOS DE ORDENAMIENTO INTERNO. BURBUJA, QUICKSORT, SHELLSORT Y RADIX. Cuadro comparativo entre los mtodos internos.
METODO Burbuja ALGORITMO PRINCIPAL
1.- Lleva los elementos ms chicos hacia la parte izquierda del arreglo. 2.- Lleva los elementos ms chicos hacia la parte derecha del arreglo. Las comparaciones entre elementos se efectan con saltos de mayor tamao, pero con incrementos decrecientes. 1.- Toma al azar un elemento X del arreglo. 2.- Se trata de ubicar a X en la posicin en la posicin correcta del arreglo, cuidando que los elementos a la izquierda sea a X, y los de la derecha sean a X. 3.- Repetimos los pasos, pero ahora con los elementos que se encuentran a la izquierda y a la derecha de donde se encuentra X. 4.- Finaliza cuando todos los elementos encuentran su posicin correcta. Consiste en hacer diversos montones de fichas, cada uno tiene en sus componentes un digito igual en una misma posicin, estos montones se recogen en orden ascendente y se reparte en montones segn el siguiente digito clave.
CARACTERISTICAS ESPECIALES
Es el ms utilizado pero quiz sea el mtodo ms ineficiente.
Shellsort
Es una versin mejorada del mtodo de ordenacin por insercin directa. Actualmente el ms eficiente y veloz, tambin es conocido como ordenacin por particin.
Quicksort
Radix
METODOS DE BUSQUEDA.
Una operacin de bsqueda se puede llevar a cabo sobre elementos ordenados o desordenados. Una bsqueda ser ms fcil y ocupa menos tiempo cuando los datos estn ordenados. Los mtodos de bsqueda se organizan en internos y externos, segn la ubicacin de los datos sobre los cuales se realizara la bsqueda. BUSQUEDA INTERNA. Cuando todos los elementos se encuentran en la memoria principal de la computadora, almacenados en arreglos (estructura esttica), listas ligadas o rboles (dinmicas). Los mtodos de bsqueda interna ms importantes son: Secuencial o lineal. Consiste en revisar elemento tras elemento hasta encontrar el dato buscado, o llegar al final del conjunto de datos disponible. Bsqueda secuencial en listas enlazadas. Consiste en recorrer el arreglo de izquierda a derecha hasta que se encuentre el elemento buscado o se termine el arreglo, lo que ocurra primero. Binaria. Funciona exclusivamente con arreglos ordenados, consiste en dividir el intervalo de bsqueda en dos partes, comparando el elemento buscado con el que ocupa la posicin central en el arreglo, este mtodo es ms eficiente que el secuencial. En caso que no fuese iguales se redefinen los extremos del intervalo, segn el elemento sea mayor o menor que el elemento buscado, disminuyendo el espacio de bsqueda. Transformacin de claves o hash. Permite aumentar la velocidad de bsqueda sin necesidad de tener los elementos ordenados y el tiempo de bsqueda es independiente del nmero de elementos del arreglo. Funcin hash por modulo: Divisin. La funcin hash por mdulo o divisin consiste en tomar el residuo de la divisin de la clave en el nmero de elementos del arreglo. Ejemplo.
Se tiene un arreglo de N elementos, y K es la clave del dato a buscar, la funcin hash por divisin queda definida por la siguiente formula: H(K)=(K mod N) +1
N. La suma de 1 es para obtener un valor comprendido entre 1 y
Funcin hash cuadrado. La funcin hash cuadrado consiste en elevar al cuadrado la clave y tomar los dgitos centrales como direccin. El nmero de dgitos que se debe considerar se encuentra determinado por el rango del ndice. Ejemplo. Sea K la clave del dato a buscar, la funcin hash cuadrada queda definida, entonces, por la siguiente formula: h(k)=dgitos centrales(k^2)+1 comprendido entre 1 y N. Funcin hash por plegamiento. Consiste en dividir la clave en partes, y operar con ellas, asignando como direccin los dgitos menos significativos. La operacin entre las partes se puede realizar por medio de sumas o multiplicaciones. Ejemplo (suma): Sea K la clave del dato a buscar K est formada por los dgitos d1,d2,,dN. La funcin hash por plegamiento queda definida con la siguiente formula: H(K)=dgmensig ((d1.di) + (di+1di) +.+(d1.dN)) +1 La suma de 1 es para obtener un valor comprendido entre 1 y N. Funcin hash por truncamiento. Consiste en tomar algunos dgitos de la clave y formar con ellos una direccin. Este mtodo es de los ms sencillos. Ejemplo: Sea K la clave del dato a buscar, k esta formada por los dgitos d1,d2.dN. La funcin hash por truncamiento se representa de la siguiente forma: H(K)= elegir dgitos(d1,d2,dN) +1 La suma de 1 es para obtener un valor
BUSQUEDA EXTERNA.
Cuando los elementos estn en memoria secundaria, USB, discos externos. Cuando la bsqueda se lleva a cabo con informacin almacenada en archivos. Bsqueda en archivos secuenciales. Los archivos secuenciales son aquellos cuyos elementos o registros ocupan posiciones relativas consecutivas. Todo elemento tiene un campo que lo identifica, llamado campo clave, que est formado por un conjunto de caracteres o dgitos. Mtodos de bsqueda en archivos secuenciales: Bsqueda secuencial. Consiste en recorrer el archivo comparando la clave buscada con la clave del registro en curso el recorrido lineal del archivo termina cuando se encuentra el elemento, cuando se llega al final del archivo. Bsqueda secuencial mediante bloques. El archivo debe estar ordenado, consiste en tomar bloques de registros en lugar de registros aislados, un bloque es un conjunto de registros, su tamao depende del nmero de elementos del archivo. El tamao del bloque es igual a , donde es el nmero de registros del archivo. La bsqueda se realiza al comparar la clave elegida con el ltimo registro de cada bloque, si la clave es menor se busca en forma secuencial a travs de los registros salteado en el bloque, en caso contrario se continua con el siguiente bloque. En promedio el nmero de comparaciones requeridas para encontrar un valor dado ser igual a . Ejemplo. Sea FA un archivo ordenado de 20 registros. Los registros ocupan posiciones consecutivas con direcciones relativas del 1 al 20. Las claves de los registros almacenados en FA son: 204, 311, 409, 415, 439, 450, 502, 507, 600, 623, 679, 680, 691, 692, 695, 698, 730, 850, 870, 889. Dado que se conoce N (nmero de elementos del arreglo), se calcula el tamao del bloque de la siguiente manera: TB= =4
204, 311, 409, 415, 439, 450, 502, 507, 600, 623, 679, 680, 691, 692, 695, 698, 730, 850, 870, 889.
Bsqueda binaria. El archivo debe estar ordenado y se debe de conocer su nmero de elementos, en esta bsqueda se requieren accesos a diferentes posiciones del dispositivo perifrico en el cual est almacenado el archivo, con esto se produce un alto costo en el tiempo de acceso. Bsqueda por transformacin de claves hash. Los archivos normalmente se encuentran organizado en reas llamadas cubeta, estas se encuentran formadas por cero, uno o ms bloques de registros. La funcin Hash aplicada a una clave da como resultado un valor que hace referencia a una cubeta en la cual se puede encontrar el registro buscado. Ejemplo.
0 1 2 3 4 5
Bloque 1
Bloque 2
Bloque 1
Bloque 1
Bloque 2
Bloque 3
CONCLUSIONES.
METODOS DE ORDENAMIENTO. En mi opinin los mtodos de ordenacin interno que son los utilizados para ordenar solo arreglos como listas ya que son pocos los elementos que tendra que comparar lo hace en una forma ms rpida que cualquiera de los mtodos externos, los cuales tienen la capacidad de ordenar desde dos archivos (intercalacin) creando uno nuevo con la ordenacin realizada, o los mtodos de mezclas que hacen fusiones y permitiendo ordenar varios archivos creando uno nuevo con el resultado. Y para m el mtodo interno que ms til se me hace para ordenar una lista es el de Quicksort ya que sita el elemento a buscar en el centro de la lista y de ah comienza a hacer comparaciones, a la derecha que no sea mayor o igual al elemento comparado y a la izquierda que sea menor o igual al elemento comparado. Respecto a los dems mtodos me parece que tardan un poco ms de tiempo en ordenar un arreglo y en la comparacin que se realiz antes se logr ver ya que tienen que dar ms pasadas al arreglo para lograr ordenarlo. METODOS DE BUSQUEDA. Los mtodos internos de bsqueda se desempean al igual que los de ordenacin, ya que sirven solo con arreglos o listas, y en mi opinin el ms til es el de bsqueda binaria ya que divide el arreglo en 2 partes y compara el elemento a buscar con el elementos central y de ah respecto a ese resultado inicia comparaciones ya sea al lado derecho si es mayor o al izquierdo si es menor. De los externos que buscan elementos dentro de archivos tambin me parece el de bsqueda binaria el ms idneo para ello, ya que todos los registros los tienen dentro de cubetas (0, 1 2) y respecto al elemento que se busc a entrara a las cubetas a checar si el elemento est dentro en caso contrario saltara a la otra cubeta o hasta que se encuentre el elemento deseado.
BIBLIOGRAFIA
ESTRUCTURAS DE DATOS, OSVALDO CAIRO Y SILVIA GUARDATI, TERCERA EDICION, EDITORA MC GRAW HILL