18

Algoritmos de Busqueda

Embed Size (px)

Citation preview

Page 1: Algoritmos de Busqueda
Page 2: Algoritmos de Busqueda

ORDENAMIENTOS INTERNOS Y EXTERNOS | 2

1. Indice

1. Indice 2

2. Introducción 3

3. Objetivos 3

4. Analisis 4

4.1. Ordenamiento Interno 4

4.1.1 Burbuja 4

4.1.1.1. Burbuja Menor 4

4.1.1.2. Burbuja Mayor 5

4.1.1.3. Burbuja Señal 6

Manual del Usuario 16

Conclusiones ¡Error! Marcador no definido.

Bibliografia 18

Page 3: Algoritmos de Busqueda

ORDENAMIENTOS INTERNOS Y EXTERNOS | 3

2. Introducción

Cuando a uno tiene que ordenar datos, ya sean registros de ventas de clientes o resultados de notas asociadas

rescpectivamente a cada alumno, etc. Siempre se choca con la gran dificultad de ir ubicando uno por uno el

posicion que le corresponde a cada elemento, si la cantidad de datos a ordenar no es mucha, uno podria

ordenar asta 50 datos manualmente con la minima probabilidad de equivocarse; sin embargo si cantidad de

datos la supera como 100 o 1000 datos, una persona promedio no podria ordenarlos de manera eficaz, cabria el

riesgo de que se equivoque en la posicion de alguno de los elementos y de que se tomo demasiado tiempo en

realizar dicha actividad, por eso desde la aparcion de los computadores el hombre fue desarrollando algoritmos

que faciliten esta tarea demasiada complicada en cuanto a cantidad se trata. Poco a poco los algoritmos de

ordenamiento fueron evolucionando para convertirse en lo que son ahora, si bien en este trabajo mostraremos

algunas de las clasicas formas de ordenamiento interno y externo, veremos que algunos son mas eficaces y

eficientes que otros dependiendo del factor cantidad de datos, o ambiente en el que se opera.

Dia a dia estos algoritmos son estudiados cada vez más y más; para la mejor operación de las grandes

multinacionales en el mundo, para gestionar espacio y tiempo, factores que son esenciales en este mundo

globalizado, y como estudiantes de Ingenieria de Software no somos la excepción, nosotros tambien somos

desarroladores de software y como desarrolladores en su debido momento tambien aportaremos a la

investigacion de este historico y beneficioso tema .

3. Objetivos

Tratar de marcar las diferencias de tiempos al momento de realizar los metodos de ordenamiento.

Iterar con 5,10,100 mil o mas datos, definir que metodos son mas eficases y eficientes con respecto a la

cantidad de datos que se trabajan.

Saber impementar los metodos correctos de ordenamientos al momento de desarrollar un programa

saber diferenciar en que momento usar uno de estos metodos.

Ampliar la gama de conocimentos con respecto a los diferentes algoritmos de ordenamiento internos y

externos.

Poder desarrollar y mejorar algunos de estos algoritmos.

Page 4: Algoritmos de Busqueda

ORDENAMIENTOS INTERNOS Y EXTERNOS | 4

4. Analisis

4.1. Ordenamiento Interno

4.1.1 Método Burbuja

4.1.1.1. Burbuja Menor

Se tienen los siguientes elementos : 14 58 7 19 47 30 11 41

Primera Iteracion:

A[6] > A[7] (11 > 41) no hay cambio

A[5] > A[6] (30 > 11) si hay cambio

A[4] > A[5] (47 > 11) si hay cambio

A[3] > A[4] (19 > 11) si hay cambio

A[2] > A[3] (7 > 11) no hay cambio

A[1] > A[2] (58 > 7) si hay cambio

A[0] > A[1] (14 > 7) si hay cambio

El arreglo queda de la siguiente forma:

7 14 58 11 19 47 30 41

Podemos apreciar que el valor mas pequeño del arreglo, el numero 7, se desplaza al extremo de la

izquierda.

Segunda Iteracion:

A[6] > A[7] (30 > 41) no hay cambio

A[5] > A[6] (47 > 30) si hay cambio

A[4] > A[5] (19 > 30) no hay cambio

A[3] > A[4] (11 > 19) no hay cambio

A[2] > A[3] (58 > 11) si hay cambio

A[1] > A[2] (14 > 11) si hay cambio

El arreglo queda de la siguiente forma:

7 11 14 58 19 30 47 41

Ahora el segundo elemento de menor valor, el numero 12, es situado en la posicion que le corresponde

Page 5: Algoritmos de Busqueda

ORDENAMIENTOS INTERNOS Y EXTERNOS | 5

Aquí mostramos el resultado despues de todas las iteraciones a realizar

3era pasada: 7 11 14 19 58 30 41 47

4ta pasada: 7 11 14 19 30 58 41 47

5ta pasada: 7 11 14 19 30 41 58 47

6ta pasada: 7 11 14 19 30 41 47 58

7ma pasada: 7 11 14 19 30 41 47 58

4.1.1.2. Burbuja Mayor

Del arreglo anterior: 14 58 7 19 47 30 11 41

Primera Iteracion:

A[0] > A[1] (14 > 58) no hay cambio

A[1] > A[2] (58 > 7) si hay cambio

A[2] > A[3] (58 > 19) si hay cambio

A[3] > A[4] (58 > 47) si hay cambio

A[4] > A[5] (58 > 30) si hay cambio

A[5] > A[6] (58 > 11) si hay cambio

A[6] > A[7] (58 > 41) si hay cambio

El arreglo queda de la siguiente forma:

14 7 19 47 30 11 41 58

Podemos apreciar que el valor mas grande del arreglo, el numero 58, se desplaza al extremo de la

derecho.

Segunda Iteracion:

A[0] > A[1] (14 > 7) si hay cambio

A[1] > A[2] (14 > 19) no hay cambio

A[2] > A[3] (19 > 47) no hay cambio

A[3] > A[4] (47 > 30) si hay cambio

A[4] > A[5] (47 > 11) si hay cambio

A[5] > A[6] (47 > 41) si hay cambio

Page 6: Algoritmos de Busqueda

ORDENAMIENTOS INTERNOS Y EXTERNOS | 6

El arreglo queda de la siguiente forma:

7 14 19 30 11 41 47 58

Ahora el segundo elemento de mayor valor, el numero 12, es situado en la posicion que le corresponde

Aquí mostramos el resultado despues de todas las iteraciones a realizar

3era pasada: 7 14 19 11 30 41 47 58

4ta pasada: 7 14 11 19 30 41 47 58

5ta pasada: 7 11 14 19 30 41 47 58

6ta pasada: 7 11 14 19 30 41 47 58

7ma pasada: 7 11 14 19 30 41 47 58

4.1.1.3. Burbuja Señal

La idea central de este algoritmo es dar una señal si el arreglo ya estaba ordenado en una de las

iteraciones, el algoritmo ordena de la misma forma que el Burbuja Mayor.

ANALISIS DE EFICIENCIA DEL MÉTODO BURBUJA

El número de comparaciones que se realizan en el método de la burbuja se puede contabilizar fácilmente.

En la primera pasada se realizan (n-1) comparaciones, en la segunda pasada (n-2) comparaciones, en la

tercera pasada (n-3) comparaciones y así sucesivamente hasta llegar a 2 y 1 comparaciones entre claves,

siendo n el número de elementos del arreglo. Por lo tanto, tenemos que el número de comparaciones es:

𝐶 =𝑛2 – n

2

Respecto al numero de movimientos, estos dependen fundamentalmente de si el arreglo se encuentra

ordenado, desordenado o en el orden inverso. Los movientos para cada uno de estos casos son:

𝑀𝑚í𝑛 = 0 𝑀𝑚𝑒𝑑 = 0.75 ∗ (𝑛2 − 2) 𝑀𝑚á𝑥 = 1.5 ∗ (𝑛2 − 2)

Ahora bien, el tiempo necesario para ejecutar el algoritmo de la burbuja es proporcional a n2,O(n2),

donde n es el numero de elementos de arreglo.

Page 7: Algoritmos de Busqueda

ORDENAMIENTOS INTERNOS Y EXTERNOS | 7

4.1.2. Método de la Sacudida (shaker sort)

Se tienen los siguientes elementos : 14 58 7 19 47 30 11 41

Primera Iteracion:

PRIMERA ETAPA (de derecha a izquierda)

A[6] > A[7] (11 > 41) no hay cambio

A[5] > A[6] (30 > 11) si hay cambio

A[4] > A[5] (47 > 11) si hay cambio

A[3] > A[4] (19 > 11) si hay cambio

A[2] > A[3] (7 > 11) no hay cambio

A[1] > A[2] (58 > 7) si hay cambio

A[0] > A[1] (14 > 7) si hay cambio

El arreglo queda de la siguiente forma en su primera etapa:

7 14 58 11 19 47 30 41

SEGUNDA ETAPA (de izquierda a derecha)

A[1] > A[2] (14 > 58) no hay cambio

A[2] > A[3] (58 > 11) si hay cambio

A[3] > A[4] (58 > 19) si hay cambio

A[4] > A[5] (58 > 47) si hay cambio

A[5] > A[6] (58 > 30) si hay cambio

A[6] > A[7] (58 > 41) si hay cambio

El arreglo queda de la siguiente forma en su segunda etapa:

7 14 11 19 47 30 41 58

Podemos apreciar que el mayor y el menor elemento ya estan posicionados donde les corresponde, luego

procedemos con los siguientes elementos de la misma forma

Page 8: Algoritmos de Busqueda

ORDENAMIENTOS INTERNOS Y EXTERNOS | 8

Segunda Iteracion:

PRIMERA ETAPA (de derecha a izquierda)

A[5] > A[6] (30 > 41) no hay cambio

A[4] > A[5] (47 > 30) si hay cambio

A[3] > A[4] (19 > 30) no hay cambio

A[2] > A[3] (11 > 19) no hay cambio

A[1] > A[2] (14 > 11) si hay cambio

El arreglo queda de la siguiente forma en su primera etapa:

7 11 14 19 30 47 41 58

SEGUNDA ETAPA (de izquierda a derecha)

A[2] > A[3] (14 > 19) no hay cambio

A[3] > A[4] (19 > 30) no hay cambio

A[4] > A[5] (30 > 47) no hay cambio

A[5] > A[6] (47 > 41) si hay cambio

El arreglo queda de la siguiente forma en su segunda etapa:

7 11 14 19 30 41 47 58

Podemos apreciar que al realizar la primera etapa de la tercera pasada se observa que no se realizan cambios; por

lo tanto, la ejecucion del algoritni se termina.

ANALISIS DE EFICIENCIA DEL MÉTODO DE LA SACUDIDA

El análisis de este método, y en general el de los métodos mejorados y logarítmicos, es muy complejo.

Para el análisis es necesario tener en cuenta tres factores que afectan directamente al tiempo de ejecución del

algoritmo: las comparaciones entre las claves, los intercambios entre ellas y las pasadas que se realizan. Encontrar

fórmulas que permitan calcular cada uno de estos factores es una tarea muy difícil de realizar.

Los estudios que se han efectuado sobre el método de la sacudida demuestran que el solo se pueden

reproducir las dobles comparaciones entre claves, pero se debe recordar que la operación de intercambio es una

tarea más complicada y costosa que la comparación. Por lo tanto, es posible afirmar que las hábiles mejoras

realizadas sobre el método de intercambio directo solo producen resultados apreciables si el arreglo está

parcialmente ordenado, lo cual resulta difícil saber de antemano ; pero si el arreglo esta desordenado el método

se comporta, incluso peor que otros métodos directos, como los de inserción y selección.

Page 9: Algoritmos de Busqueda

ORDENAMIENTOS INTERNOS Y EXTERNOS | 9

4.1.3. Método de Inserción directa

Se tienen los siguientes elementos : 14 58 7 19 47 30 11 41

Primera Iteracion:

A[1] < A[0] (58 < 14) no hay cambio

14 58 7 19 47 30 11 41

Segunda Iteracion:

A[2] < A[1] (7 < 58) si hay cambio

A[1] < A[0] (7 < 14) si hay cambio

7 14 58 19 47 30 11 41

Tercera Iteracion:

A[3] < A[2] (19 < 58) si hay cambio

A[2] < A[1] (19 < 14) no hay cambio

7 14 19 58 47 30 11 41

Podemos apreciar que una vez que se determina la posición correcta del elemento se interrumpen las

comparaciones. Por ejemplo, para el caso de anterior no se realizó la comparación A[1] < A[0].

Y este seria el resultado de las siguientes iteraciones:

4ta pasada: 7 14 19 47 58 30 11 41

5ta pasada: 7 14 19 30 47 58 11 41

6ta pasada: 7 11 14 19 30 47 58 41

7ma pasada: 7 11 14 19 30 41 47 58

ANALISIS DE EFICIENCIA DEL MÉTODO DE INSERCION DIRECTA

El número mínimo de comparaciones y movimientos entre claves se produce cuando los elementos de arreglo ya

están ordenados. En general podemos afirmar que si el arreglo se encuentra ordenado se efectúa como máximo

n-1 comparaciones y 0 movimientos entre elementos.

𝐶𝑚í𝑛 = 𝑛 − 1

Page 10: Algoritmos de Busqueda

ORDENAMIENTOS INTERNOS Y EXTERNOS | 10

El número maximo de comparaciones y movimientos entre los elementos se produce cuando el arreglo estan en

orden inverso

𝐶𝑚á𝑥 = 𝑛2 − 𝑛

Si bien, el número de comparaciones promedio, que es cuando los elementos aparecen en el arreglo en forma

aleatoria, se puede calcular mediante la suma de las comparcaiones minimas y maximas dividida entre 2.

𝐶𝑚𝑒𝑑 =𝑛2+𝑛−2

4

Respecto de numero de movimientos, si el arreglo se encuentra ordenado no se realiza ninguno.Por lo tanto:

𝑀𝑚í𝑛 = 0

El numero maximo de movimientos se presenta cuando el arreglo esta en orden inverso. En la primera iteracion se

realiza un movimieto en la segunda dos y asi sucesivamente n-1 movimientos entra los elementos en la ultima

pasada.por lo tanto:

𝑀𝑚á𝑥 =𝑛2−𝑛

2

El numero de movientos promnedio, que se da cuando los elementos se encuentra en el arreglo en forma

aleatoria, se calcula como la suma de los movientos minimos y maximos divididos entre 2. Por lo tanto:

𝑀𝑚𝑒𝑑 =𝑛2−𝑛

4

4.1.4. Método de Inserción binaria

Se tienen los siguientes elementos : 14 58 7 19 47 30 11 41

Primera Iteracion:

A[1] < A[0] (58 < 14) no hay cambio

14 58 7 19 47 30 11 41

Segunda Iteracion:

A[2] < A[0] (7 < 14) si hay cambio

7 14 58 19 47 30 11 41

Tercera Iteracion:

A[3] < A[1] (19 < 14) no hay cambio

A[3] < A[2] (19 < 58) si hay cambio

7 14 19 58 47 30 11 41

Page 11: Algoritmos de Busqueda

ORDENAMIENTOS INTERNOS Y EXTERNOS | 11

Cuarta Iteracion:

A[4] < A[1] (47 < 14) no hay cambio

A[4] < A[2] (47 < 19) no hay cambio

A[4] < A[3] (47 < 58) si hay cambio

7 14 19 47 58 30 11 41

Quinta Iteracion:

A[5] < A[2] (47 < 19) no hay cambio

A[5] < A[3] (47 < 58) si hay cambio

7 14 19 30 47 58 11 41

Sexta Iteración:

A[6] < A[2] (11 < 19) si hay cambio

A[6] < A[0] (11 < 7) no hay cambio

A[6] < A[1] (11 < 14) si hay cambio

7 11 14 19 30 47 58 41

Séptima Iteración:

A[7] < A[3] (41 < 19) no hay cambio

A[7] < A[5] (41 < 47) si hay cambio

A[7] < A[4] (41 < 30) no hay cambio

7 11 14 19 30 41 47 58

ANALISIS DE EFICIENCIA DEL MÉTODO DE INSERCION BINARIA

Al analizar el método de ordenación por inserción binaria se advierte la presencia de un caso antinatural. El

método efectúa el menor número de comparaciones cuando el arreglo está totalmente desordenado y el máximo

cuando se encuentra ordenado.

Es posible suponer que mientras en una búsqueda secuencial se necesita K comparaciones para insertar un

elemento, en una binaria se necesitara la mitad de las K comparaciones. Por lo tanto, el número de comparaciones

promedio en el método de ordenación por inserción binaria se puede calcular como:

𝐶 =𝑛2−𝑛

4

Page 12: Algoritmos de Busqueda

ORDENAMIENTOS INTERNOS Y EXTERNOS | 12

Este es un algoritmo de comportamiento antinatural y, por lo tanto, es necesario ser muy cuidadoso cuando se

hace un análisis de él. Las hábiles mejoras introducidas producen un efecto negativo cuando el arreglo esta

ordenado y resultados apenas satisfactorios cuando las claves están desordenadas. De todas maneras. Se debe

recordar que no se reduce el número de movimientos que es una operación más complicada y costosa que la

operación de comparación. Por lo tanto, el tiempo de ejecución del algoritmo sigue siendo proporcional a n2,

O(n2).

4.1.5. Método de selección directa

Se tienen los siguientes elementos : 14 58 7 19 47 30 11 41

Primera Iteración:

Se realiza la asignación: MENOR ← A[0] (14)

(MENOR < A[1]) (14<58) Sí se cumple la condición

(MENOR < A[2]) (14<7) No se cumple la condición MENOR ← A[2] (7)

(MENOR < A[3]) (7<19) Sí se cumple la condición

(MENOR < A[4]) (7<47) Sí se cumple la condición

(MENOR < A[5]) (7<30) Sí se cumple la condición

(MENOR < A[6]) (7<11) Sí se cumple la condición

(MENOR < A[7]) (7<41) Sí se cumple la condición

Luego de la primera iteración, el arreglo queda de la siguiente forma:

7 58 14 19 47 30 11 41

Podemos observar que el menor elemento del arreglo A[2] (7) se intercambio con el primer elemento A[0] (14),

realizando solamente un movimiento.

Segunda Iteración:

Se realiza la asignación: MENOR ← A[1] (58)

(MENOR < A[2]) (58<14) No se cumple la condición MENOR ← A[2] (14)

(MENOR < A[3]) (14<19) Si se cumple la condición

(MENOR < A[4]) (14<47) Si se cumple la condición

(MENOR < A[5]) (14<30) Si se cumple la condición

(MENOR < A[6]) (14<11) No se cumple la condición MENOR ← A[6] (11)

(MENOR < A[7]) (11<41) Si se cumple la condición

Page 13: Algoritmos de Busqueda

ORDENAMIENTOS INTERNOS Y EXTERNOS | 13

7 11 14 19 47 30 58 41

Podemos observar que el segundo menor elemento del arreglo A[6] (11) se intercambio con el segundo elemento

A[1] (58).

Y este seria el resultado de las siguientes iteraciones:

3era pasada: 7 11 14 19 47 30 58 41

4ta pasada: 7 11 14 19 47 30 58 41

5ta pasada: 7 11 14 19 30 47 58 41

6ta pasada: 7 11 14 19 30 41 58 47

7ma pasada: 7 11 14 19 30 41 47 58

ANALISIS DE EFICIENCIA DEL MÉTODO DE SELECCIÓN DIRECTA

El analisis del metodo de selección directa es relativamente simple. Se debe considerar que el numero de

comparaciones entre elementos es independiente de la disposicion inicial de de estps en el arreglo. En la primera

iteracion se realizan (n-2) comparaciones y asi sucesivamente hasta 2 y 1 comparaciones en la penultima y ultima

iteracion, respectivamente. Por lo tanto:

𝐶 =𝑛2−𝑛

2

Respecto del número de intercambios, siempre será n-1, a excepción de que se tenga incorporada en el algoritmo

alguna técnica para prevenir el intercambio de un elemento consigo mismo. Por lo tanto:

𝑀 = 𝑛 − 1

El tiempo de ejecución del algoritmo es proporcional al n2, O(n2), aun cuando es más rápido que los métodos

presentados con anterioridad.

4.1.6. Intercalación de archivos

Se entiende la unión o fusión de dos archivos ordenados de acuerdo con un determinado campo clave, en solo

archivo, analicemos el siguiente ejemplo:

Supongamos que se tiene dos archivos, F1, F2, cuya información está ordenada de acuerdo con un campo clave:

F1: 06 09 18 20 35

F2: 10 16 25 28 66 82 87

Page 14: Algoritmos de Busqueda

ORDENAMIENTOS INTERNOS Y EXTERNOS | 14

Se debe producir, entonces, un archivo F3 ordenado, como resultado de la mezclas de F1 y F2. Solo se puede

acceder en forma directa dos claves, primera del archivo F1 y la segunda del archivo F2. La comparación que se

realizan para producir el archivo F3 son:

(06 < 10) Si se cumple la condición

Se escribe 06 en el archivo de salida F3 y se vuelve a leer la otra clave de F1 (18)

(09 < 10)Sí cumple la condición

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 condición

Se escribe 10 en el archivo de salida F3 se vuelve a leer otra clave de F2 (16)

El estado de los archivos F1, F2 y F3, hasta el momento, es como se muestra más abajo. La flecha de la señal el

último elemento leído de los archivos que se están intercalando.

F1: 06 09 18 20 35

F2: 10 16 25 28 66 82 87

F3: 06 09 10

El proceso continúa hasta que en uno u otro archivo se detecte su final; en tal caso sólo se tendrá que copiar la

información del archivo no vacío al archivo de salida F3. El resultado final de la información entre los archivos F1 y

F2 es:

F3: 06 09 10 16 18 20 25 28 35 66 82 87

4.1.7. Ordenación por mezcla directa

Suponemos que deseamos ordenar las claves de archivo F. Para realizar tal actividad se crean dos archivos

auxiliares a los que se les denominará F1 y F2.

F: 09 75 14 68 29 17 31 25 04 05 13 18 72 46 61

Primera pasada:

Partición en secuencia de longitud 1.

F: 09 75 14 68 29 17 31 25 04 05 13 18 72 46 61

F1: 09 14 29 31 04 13 72 61

F2: 75 68 17 25 05 18 46

Fusión en secuencias de longitud 2

F: 09 75 14 68 17 29 25 31 04 05 13 18 46 72 61

Segunda pasada:

Page 15: Algoritmos de Busqueda

ORDENAMIENTOS INTERNOS Y EXTERNOS | 15

Partición en secuencia de longitud 2

F1: 09 75 17 29 04 05 46 72

F2: 14 68 25 31 13 18 61

Fusión en secuencia de longitud 4

F: 09 14 68 75 17 25 29 31 04 05 13 18 46 61 72

Tercera pasada:

Partición en secuencia de longitud 4

F1: 09 14 68 75 04 05 13 18

F2: 17 25 29 31 46 61 72

Fusión en secuencia de longitud 8

F: 09 14 17 25 29 31 68 75 04 05 13 18 46 61 72

Cuarta pasada:

Partición en secuencia de longitud 8

F1: 09 14 17 25 29 31 68 75

F2: 04 05 13 18 46 61 72

Fusión en secuencia de longitud 16

F: 04 05 09 13 14 17 18 25 29 31 46 61 68 72 75

4.1.8. Ordenación por el método de mezcla equilibrada

Supones que se desea ordenar las claves de los archivo F utilizando el método de la mezcla equilibrada.

F: 09 75 14 68 29 17 31 25 04 05 13 18 72 46 61

III=> grupos de secuencia ordenada III=> grupo de secuencias ordenadas

Los pasos que se realizan son:

Partición inicial:

F2: 09 75 29 25 46 61

F3: 14 68 17 31 04 05 13 18 72

Primera fusión-partición

F: 09 14 68 75 04 05 13 18 25 46 61 72

F1: 17 29 31

Segunda fusión de partición:

Page 16: Algoritmos de Busqueda

ORDENAMIENTOS INTERNOS Y EXTERNOS | 16

F2: 09 14 17 29 31 68 75

F3: 04 05 13 18 25 46 61 72

Tercera fusión de partición:

F: 04 05 09 13 14 17 18 25 29 31 46 61 68 72 75

F1:

Se observa que al realizar la tercera fusión- partición el segundo archivo queda vacío: por lo tanto, se puede

afirmar que el archivo ya se encuentra ordenado.

Manual del Usuario

Haga clic aquí para introducir el texto.

Haga clic aquí para introducir el texto.

Al igual que en el caso del Resumen ejecutivo en la página 2, el primer párrafo de este marcador es texto normal del cuerpo

que utiliza el estilo Normal predeterminado. Este párrafo utiliza el estilo Normal \endash Espacio detrás para crear espacio

antes de la tabla siguiente.

Page 17: Algoritmos de Busqueda

ORDENAMIENTOS INTERNOS Y EXTERNOS | 17

Manual de usuario

Introducción

Es una aplicación desarrollado en lenguaje C, tiene como principal funcionalidad mostrar al usuario mediante una

lista detallada, el tiempo de ejecución de los diferentes tipos de algoritmos de ordenamiento tanto internos como

externos.

De esa manera mostrarle al usuario el comportamiento de los algoritmos de ordenamiento, en función a los datos

que procesa.

Requisitos del sistema

La aplicación es multiplataforma, principalmente orientado a la plataforma Windows de 32 bits.

Como operar o navegar el sistema

Al momento poner en operación la aplicación, él generará automáticamente 3 arreglos de 5000, 40000 y 75 000

datos para su procesamiento, y luego aparecerá en la pantalla uno a uno los procesos terminados, indicando el

tiempo en (ms) que le tomo realizar la operación. Para los algoritmos de ordenamiento externo la aplicación

cuenta con 3 archivos de 1000, 5000 y 10000 datos de formato CSV, para realizar las pruebas respectivas.

Por consiguiente el usuario con tan solo hacer un clic, tendrá a su disposición información oportuna sobre el

comportamiento de los algoritmos de ordenamiento, y así poder decidir el adecuado uso de los algoritmos.

Conclusiones

1. La aplicación es muy sencilla de usarlo no requiere un usuario especializado.

2. Es una herramienta adecuada para el buen uso de los algoritmos, al momento de desarrollar aplicaciones

donde estas manejen gran o mediana cantidad de datos.

Conclusiones

al marcar los tiempos de procesamiento de cada algoritmo, se vuelve a reafirmar que el algoritmo menos

eficiente es el algoritmo de la burbuja, Y el más eficiente es el QuickSort con un tiempo muy pequeño comparado

con los otros algoritmos.

Los algoritmos internos son más rápidos en procesar, los datos, sin embargo los algoritmos externos requieren

más tiempo para procesar los datos del mismo tamaño, esto es debido a que la memoria principal es más rápida

que los dispositivos de almacenamiento secundario como los discos duros, y esto hace que el ordenamiento en

archivos se ha mas lento.

Podemos concluir además que a pesar de estar ordenados los archivos, el tiempo del proceso sigue estando en el

mismo rango, esto es debido a que el algoritmo tiene que acceder al dispositivo de almacenamiento para procesar

los datos.

Resultado estadístico es:

Page 18: Algoritmos de Busqueda

ORDENAMIENTOS INTERNOS Y EXTERNOS | 18

Bibliografia

CAIRÓ, Osvaldo y GUARDATI, Silvia, tercera edición, ESTRUCTURA DE DATOS, Mc-Graw Hill, México.

CHERRE, Rafael, 2001, primera edición, LENGUAJE DE PROGRAMACION C/C++ Y C.net, editorial macro,

Lima-Peru.

LIZAMA, Edgar, 2009, primera edición, PROGRAMACION CON C++, fondo editorial UNMSM, Lima-Perú.

JOYANES AGUILAR, Luis, 2008, cuarta edición, FUNDAMENTOS DE PROGRAMACION, ALGORITMOS,

ESTRUCTURA DE DATOS Y OBJETOS, Mc-Graw Hill, Madrid.

JOYANES AGUILAR, Luis, LUCAS SANCHEZ, García, IGNACIO ZAHONERO, Martínez, 2007, primera

edición, ESTRUCTURA DE DATOS EN C++, Mc-Graw Hill, Madrid.

5000

750000

10000

20000

30000

40000

50000

5000 40000 75000