24
Dirección General de Educación Superior Tecnológica INSTITUTO TECNOLÓGICO DE SALINA CRUZ UNIDAD 1 FACILITADOR: M.C. SUSANA MONICA ROMAN NAJERA TRABAJO: MÉTODOS DE BÚSQUEDA Y ORDENAMIENTO. NOMBRE DE LA ALUMNA: BENITA VILLALOBOS PEREZ N. DE CONTROL: 131020103 SEMESTRE: 3 GRUPO: E2 CARRERA: ING. EN TECNOLOGIAS DE LA INFORMACIÓN Y DE LAS COMUNICACIONES. SALINA CRUZ, OAXACA A DICIEMBRE DE 2014.

Reporte metodos de busqueda y ordenamiento

Embed Size (px)

Citation preview

Page 1: Reporte metodos de busqueda y ordenamiento

Dirección General de Educación Superior Tecnológica

INSTITUTO TECNOLÓGICO DE SALINA CRUZ

UNIDAD 1

FACILITADOR:

M.C. SUSANA MONICA ROMAN NAJERA

TRABAJO:

MÉTODOS DE BÚSQUEDA Y ORDENAMIENTO.

NOMBRE DE LA ALUMNA:

BENITA VILLALOBOS PEREZ

N. DE CONTROL: 131020103

SEMESTRE: 3 GRUPO: E2

CARRERA:

ING. EN TECNOLOGIAS DE LA INFORMACIÓN Y DE LAS COMUNICACIONES.

SALINA CRUZ, OAXACA A DICIEMBRE DE 2014.

Page 2: Reporte metodos de busqueda y ordenamiento

ÍNDICE

INTRODUCCIÓN ........................................................................................................................... 1

MÉTODOS DE BÚSQUEDA Y ORDENAMIENTO .................................................................. 2

MÉTODO BURBUJA..................................................................................................................... 3

MÉTODO DE SELECCIÓN ......................................................................................................... 3

MÉTODO POR INSERCIÓN ....................................................................................................... 4

MÉTODO DE INTERCAMBIO ..................................................................................................... 5

MÉTODO SHELL........................................................................................................................... 6

BÚSQUEDA SECUENCIAL ........................................................................................................ 9

BÚSQUEDA BINARIA ................................................................................................................ 10

ORDENACIÓN RÁPIDA (QUICKSORT) ...................................................................................... 11

ALGORITMO QUICKSORT. ...................................................................................................... 13

MÉTODO DE BINSORT. ............................................................................................................ 16

MÉTODO DE RADIXSORT ....................................................................................................... 17

CONCLUSIÓN ............................................................................................................................. 21

OTRAS FUENTES CONSULTADAS ....................................................................................... 22

Page 3: Reporte metodos de busqueda y ordenamiento

1

INTRODUCCIÓN

Con mucha frecuencia los programadores trabajan con grandes cantidades de datos

almacenados en arrays y registros, y por ello será necesario determinar si un array

contiene un valor que coincida con un cierto valor clave. El proceso de encontrar un

elemento específico de un arrays se denomina búsqueda.

La operación de búsqueda nos permite encontrar datos que están previamente

almacenados. La operación puede ser un éxito, si se localiza el elemento buscado o

un fracaso en otros casos.

La búsqueda se puede realizar sobre un conjunto de datos ordenados, lo cual

hace la tarea más fácil y consume menos tiempo; o se puede realizar sobre

elementos desordenados, tarea más laboriosa y de mayor insumo de tiempo.

Page 4: Reporte metodos de busqueda y ordenamiento

2

MÉTODOS DE BÚSQUEDA Y ORDENAMIENTO

BÚSQUEDA Búsqueda Interna será aquella acción que se realice sobre datos que se encuentran

en la memoria principal, por ejemplo en un arreglo.

Búsqueda Externa es cuando todos sus elementos se encuentran en memoria

secundaria (archivos almacenados en dispositivos de cinta, disco, etc.-)

La operación de búsqueda de un elemento X en un conjunto consiste en

determinar si el elemento X pertenece al conjunto y en este caso dar su posición, o

bien, determinar que el elemento X no pertenece al conjunto.

Los métodos directos tienen la característica de que su resolución es más

corta, de fácil elaboración y comprensión, aunque son ineficientes cuando el número

de elementos de un arreglo N, es mediano o considerablemente grande.

Los métodos logarítmicos son más complejos con respecto a los directos, pero

requieren menos comparaciones y movimientos para ordenar sus elementos, pero su

elaboración y compresión resulta más sofisticada y abstracta.

Se debe tener en cuenta que la eficiencia entre los distintos métodos se mide

por el tiempo de ejecución del algoritmo y este depende fundamentalmente del

número de comparaciones y movimientos que se realicen entre sus elementos.

Por lo tanto podemos decir que cuando N es pequeño debe utilizarse métodos

directos y cuando N es mediana o grande deben emplearse métodos logarítmicos.

Page 5: Reporte metodos de busqueda y ordenamiento

3

Métodos Directos o Básicos:

Ordenación por Intercambio Directo (Burbuja)

Ordenación por Selección (Obtención sucesivas de menores)

Ordenación por Inserción (Baraja)

Métodos Logarítmicos o Avanzados:

Método de Shell (Inserción con incrementos decrecientes)

Método de QuickSort (Clasificación Rápida)

Método de Binsort (Clasificación por mezcla)

Método de Radixsort

MÉTODO BURBUJA

El método de la burbuja es uno de los más simples, es tan fácil como comparar todos

los elementos de una lista contra todos, si se cumple que uno es mayor o menor a

otro, entonces los intercambia de posición.

Se denomina burbuja debido a que los valores más pequeños «burbujean»

gradualmente (suben) hacia la cima o parte superior del array de modo similar a

como suben las burbujas en el agua, mientras que los valores mayores se hunden en

la parte inferior del array.

MÉTODO DE SELECCIÓN

Los métodos de ordenación por selección se basan en dos principios básicos:

Seleccionar el elemento más pequeño (o más grande) del arreglo.

Colocarlo en la posición más baja (o más alta) del arreglo.

A diferencia del método de la burbuja, en este método el elemento más

pequeño (o más grande) es el que se coloca en la posición final que le corresponde.

Consideremos un array A con 5 valores enteros 51, 21, 39, 80, 36:

Page 6: Reporte metodos de busqueda y ordenamiento

4

Figura 1

Figura 2

MÉTODO POR INSERCIÓN

El método de ordenación por inserción es similar al proceso típico de ordenar tarjetas

de nombres (cartas de una baraja) por orden alfabético, que consiste en insertar un

nombre en su posición correcta dentro de una lista o archivo que ya está ordenado.

Así el proceso en el caso de la lista de enteros A = 50, 20, 40, 80, 30.

Page 7: Reporte metodos de busqueda y ordenamiento

5

Figura 3

MÉTODO DE INTERCAMBIO

Se encarga de ordenar los elementos de una lista en orden ascendente. Este

algoritmo se basa en la lectura sucesiva de la lista a ordenar, comparando el

elemento inferior de la lista con los restantes y efectuando intercambio de posiciones

cuando el orden resultante de la comparación no sea el correcto.

Figura 4

Page 8: Reporte metodos de busqueda y ordenamiento

6

Figura 5

MÉTODO SHELL

El nombre se debe a su inventor, D. L. Shell. Se suele denominar también

ordenación por inserción con incrementos decrecientes. Se considera que el método

Shell es una mejora de los métodos de inserción directa.

Shell modifica los saltos contiguos resultantes de las comparaciones por saltos

de mayor tamaño y con ello se consigue que la ordenación sea más rápida.

Generalmente se toma como salto inicial n/2 (siendo n el número de elementos),

luego se reduce el salto a la mitad en cada repetición hasta que el salto es de

tamaño 1.

Ejemplo:

74, 14, 21, 44, 38, 97, 11, 78, 65, 88, 30

Se debe empezar con k=n/2, siendo n el número de elementos de arreglo, y

utilizando siempre la división entera.... después iremos variando k haciéndolo más

Page 9: Reporte metodos de busqueda y ordenamiento

7

pequeño mediante sucesivas divisiones por 2, hasta llegar a k=1. Pero vamos a

ello... En nuestro ejemplo, n=11 (porque hay 11 elementos). Así que k=n/2=11/2=5.

Empezamos con k=5. Así pues, vamos a dividir nuestro arreglo original en 5 sub-

arreglo, en los cuales, sus elementos estarán separados por 5 lugares del arreglo

original (el salto o gap es 5).

Tomamos el primer elemento (el 74) contamos 5 lugares y tomamos también otro

elemento (el 97) volvemos a contar 5 y tomamos otro (el 30) y acabamos porque se

nos acaba el arreglo. El primer sub-arreglo con k=5 es el formado por 74, 97 y 30.

74, 14, 21, 44, 38, 97, 11, 78, 65, 88, 30

Ahora, ordenaremos los elementos del sub-arreglo (rojo) pero sólo entre ellos,

utilizando el algoritmo de Inserción directa.

74, 97, 30

30, 14, 21, 44, 38, 74, 11, 78, 65, 88, 97

El 30, un elemento relativamente pequeño se ha ido hacia el principio y el 97 hacia el

final.

Formemos ahora otro sub-arreglo con salto k=5... Partiendo del segundo elemento

(el 14) y contando 5 (tomamos también el 11) y hasta ahí, porque se acaba el

arreglo.

30, 1, 21, 44, 38, 74, 11, 78, 65, 88, 97

Vamos a ordenarlos el 11 primero y el 14 después.

30, 11, 21, 44, 38, 74, 14, 78, 65, 88, 97

30, 11, 21, 44, 38, 74, 14, 78, 65, 88, 97

Ahora a por otro el 21 y el 78

30, 11, 21, 44, 38, 74, 14, 78, 65, 88, 97

Page 10: Reporte metodos de busqueda y ordenamiento

8

Están en orden entre ellos, así que se quedan como están.

Ahora le toca al sub-arreglo formado por el 44 y el 65

30, 11 21, 44, 38, 74, 14, 78, 65, 88, 97

Que también están en orden entre ellos.

Y finalmente el 38 y el 88, que también están en orden.

30, 11, 21, 44, 38, 74, 14, 78, 65, 88, 97

Aún no hemos terminado de ordenarlos.

Nuestra k valía 5, así que ahora k←k/2=5/2=2, nuestra nueva k vale 2.

Repetimos todo el desarrollo anterior, pero ahora nos saldrán 2 sub-arreglo cuyos

elementos están separados por 2 lugares.

Tomamos el primer elemento (el 30) contamos 2 lugares y tomamos también

otro elemento (el 21) volvemos a contar 2 y tomamos otro (el 38), volvemos a contar

y ahora tomamos (el 14), seguimos contado y tomamos (el 65), seguimos contando y

tomamos (el 97) y acabamos porque se nos acaba el arreglo. Y posteriormente se

forma el según sub-arreglo que empieza con el 11.

30, 11, 21, 44, 38, 74, 14, 78, 65, 88, 97

Se ordena (primero los rojos), con el método de inserción:

14, 11, 21, 44, 30, 74, 38, 78, 65, 88, 97

Finalmente ordenamos los negros, pero estos ya están ordenados:

14, 11, 21, 44, 30, 74, 38, 78, 65, 88, 97

Finalmente, calculamos un nuevo k dividiendo el que tenemos entre 2.

k←k/2=2/2=1 Hemos llegado a k=1. Cuando k es 1 sólo podemos obtener 1 sub-

arreglo cuyos elementos están separados 1 posición: el propio arreglo original.

Page 11: Reporte metodos de busqueda y ordenamiento

9

Dicho de otra manera... cuando k es 1, el algoritmo de Shell se comporta

exactamente igual que el de inserción directa sobre todo el arreglo.

14, 11, 21, 44, 30, 74, 38, 78, 65, 88, 97

El método de inserción directa se comporta tanto mejor cuanto más cerca está

cada elemento de su sitio definitivo. Finalmente, el arreglo queda de ésta manera:

11, 14, 21, 30, 38, 44, 65, 74, 78, 88, 97

Cada elemento descolocado ha tenido que moverse pocos lugares. Muchos

de ellos ni siquiera se han movido.

BÚSQUEDA SECUENCIAL

Busca un elemento de una lista utilizando un valor destino llamado clave. En una

búsqueda secuencial (a veces llamada búsqueda lineal), los elementos de una lista o

vector se exploran (se examinan) en secuencia, uno después de otro. La búsqueda

secuencial es necesaria, por ejemplo, si se desea encontrar la persona cuyo número

de teléfono es 958-220000 en un directorio o listado telefónico de su ciudad.

La búsqueda secuencial se utiliza normalmente cuando el array no está

ordenado. Comienza en el principio del array y busca hasta que se encuentra el dato

buscado y se llega al final de la lista.

Page 12: Reporte metodos de busqueda y ordenamiento

10

Figura 6

BÚSQUEDA BINARIA

Si la lista está ordenada, la búsqueda binaria proporciona una técnica de búsqueda

mejorada. Una búsqueda binaria típica es la búsqueda de una palabra en un

diccionario.

Dada la palabra, se abre el libro cerca del principio, del centro o del final

dependiendo de la primera letra del primer apellido o de la palabra que busca. Se

puede tener suerte y acertar con la página correcta; pero, normalmente, no será así y

se mueve el lector a la página anterior o posterior del libro.

Por ejemplo, si la palabra comienza con «J» y se está en la «L» se mueve uno

hacia atrás. El proceso continúa hasta que se encuentra la página buscada o hasta

que se descubre que la palabra no está en la lista.

Si un array está ordenado, se puede utilizar un algoritmo más eficiente

denominado búsqueda binaria.

Se tiene un arreglo ordenado de 19 casillas.

Page 13: Reporte metodos de busqueda y ordenamiento

11

Figura 7

Si buscamos el número 107. ¿En que posición del arreglo se encuentra? ¿Cuántas

comparaciones se hacen?

Búsqueda Secuencial Búsqueda Binaria

Posición = 16 Posición = 16

Comparaciones = 17 comparaciones = 3

Figura 8

ORDENACIÓN RÁPIDA (QUICKSORT)

El algoritmo conocido como quicksort (ordenación rápida) recibe el nombre de su

autor, Tony Hoare. La idea del algoritmo es simple, se basa en la división em

particiones de la lista a ordenar, por lo que se puede considerar que aplica la técnica

divide y vencerás. El método es, posiblemente, el más pequeño de código, más

rápido, más elegante, más interesante y eficiente de los algoritmos de ordenación

conocidos.

El método se basa en dividir los n elementos de la lista a ordenar en dos

partes o particiones separadas por un elemento: una partición izquierda, un elemento

central denominado pivote o elemento de partición, y una partición derecha. La

Page 14: Reporte metodos de busqueda y ordenamiento

12

partición o división se hace de tal forma que todos los elementos de la primera

sublista (partición izquierda) son menores que todos los elementos de la segunda

sublista (partición derecha).

Las dos sublistas se ordenan entonces independentemente. Para dividir la

lista en particiones (sublistas) se elige uno de los elementos de la lista y se utiliza

como pivote o elemento de partición. Si se elige una lista cualquiera con los

elementos en orden aleatorio, se puede seleccionar cualquier elemento de la lista

como pivote, por ejemplo, el primer elemento de la lista.

Si la lista tiene algún orden parcial conocido, se puede tomar otra decisión

para el pivote. Idealmente, el pivote se debe elegir de modo que se divida la lista

exactamente por la mitad, de acuerdo al tamaño relativo de las claves. Por ejemplo,

si se tiene una lista de enteros de 1 a 10, 5 o 6 serían pivotes ideales, mientras que 1

o 10 serían elecciones «pobres» de pivotes.

Una vez que el pivote ha sido elegido, se utiliza para ordenar el resto de la

lista en dos sublistas: una tiene todas las claves menores que el pivote y la otra,

todos los elementos (claves) mayores que o iguales que el pivote (o al revés). Estas

dos listas parciales se ordenan recursivamente utilizando el mismo algoritmo; es

decir, se llama sucesivamente al propio algoritmo quicksort. La lista final ordenada se

consegue concatenando la primera sublista, el pivote y la segunda lista, en ese

orden, en uma única lista. La primera etapa de quicksort es la división o

«particionado» recursivo de la lista hasta que todas las sublistas constan de sólo un

elemento.

Por ejemplo:

Se ordena una lista de números enteros aplicando el algoritmo quicksort, como

pivote se elige el primer elemento de la lista.

Page 15: Reporte metodos de busqueda y ordenamiento

13

Figura 9

ALGORITMO QUICKSORT.

La primera etapa en el algoritmo de partición es obtener el elemento pivote; una vez

que se ha seleccionado se ha de buscar el sistema para situar en la sublista

izquierda todos los elementos menores que el pivote y en la sublista derecha todos

los elementos mayores que el pivote. Supongamos que todos los elementos de la

Page 16: Reporte metodos de busqueda y ordenamiento

14

lista son distintos, aunque será preciso tener en cuenta los casos en que existan

elementos idénticos.

Los pasos que sigue el algoritmo quicksort:

Seleccionar el elemento central de a [0: n-1] como pivote.

Dividir los elementos restantes en particiones izquierda y derecha, de modo que

ningún elemento de la izquierda tenga una clave (valor) mayor que el pivote y que

ningún elemento a la derecha tenga una clave más pequeña que la del pivote.

Ordenar la partición izquierda utilizando quicksort recursivamente.

Ordenar la partición derecha utilizando quicksort recursivamente.

La solución es partición izquierda seguida por el pivote y a continuación

partición derecha.

ANÁLISIS DEL ALGORITMO QUICKSORT.

El análisis general de la eficiencia de quicksort es difícil. La mejor forma de ilustrar y

calcular la complejidad del algoritmo es considerar el número de comparaciones

realizadas teniendo en cuenta circunstancias ideales. Supongamos que n (número

de elementos de la lista) es una potencia de 2, n = 2k (k = log2 n). Además,

supongamos que el pivote es el elemento central de cada lista, de modo que

quicksort divide la sublista en dos sublistas aproximadamente iguales.

En la primera exploración o recorrido hay n − 1 comparaciones. El resultado

de la etapa crea dos sublistas aproximadamente de tamaño n/2. En la siguiente fase,

el proceso de cada sublista requiere aproximadamente n/2 comparaciones. Las

comparaciones totales de esta fase son 2(n/2) = n.

La siguiente fase procesa cuatro sublistas que requieren un total de 4(n/4)

comparaciones, etc. Eventualmente, el proceso de división termina después de k

pasadas cuando la sublista resultante tenga tamaño 1. El número total de

comparaciones es aproximadamente:

n + 2(n/2) + 4(n/4) + … + n(n/n) = n + n + … + n

Page 17: Reporte metodos de busqueda y ordenamiento

15

= n · k = n · log2 n

Para una lista normal la complejidad de quicksort es O(n log2 n). El caso ideal

que se ha examinado se realiza realmente cuando la lista (el array) está ordenado en

orden ascendente. En este caso el pivote es precisamente el centro de cada sublista.

Figura 11

Si el array está en orden ascendente, el primer recorrido encuentra el pivote

en el centro de la lista e intercambia cada elemento en las sublistas inferiores y

superiores.

La lista resultante está casi ordenada y el algoritmo tiene la complejidad O(n log2 n).

El escenario del caso peor de quicksort ocurre cuando el pivote cae

consistentemente en una sublista de un elemento y deja el resto de los elementos en

la segunda sublista. Esto sucede cuando el pivote es siempre el elemento más

pequeño de su sublista.

En el recorrido inicial, hay n comparaciones y la sublista grande contiene n – 1

elementos.

En el siguiente recorrido, la sublista mayor requiere n − 1 comparaciones y

produce una sublista de n − 2 elementos, etc. El número total de comparaciones es:

n + n − 1 + n − 2 + …+ 2 = (n − 1)(n + 2)/2

La complejidad es O(n2). En general el algoritmo de ordenación tiene como

complejidad media O(n log2 n) siendo posiblemente el algoritmo más rápido.

Page 18: Reporte metodos de busqueda y ordenamiento

16

MÉTODO DE BINSORT.

Este método, también llamado clasificación por urnas, persigue conseguir funciones

de tiempo de ejecución menores de O(n log n), para ordenar una secuencia de n

elementos siempre que se conozca algo acerca del tipo de las claves por las que se

están ordenando.

Supóngase que se tiene un vector v [] de registros, se quiere ordenar respecto

um campo clave de tipo entero, además se sabe que los valores de las claves se

encuentran en el rango de 1 a n, sin claves duplicadas y siendo n el número de

elementos. En estas circunstancias es posible colocar los registros ordenados en um

array auxiliar t [] mediante este bucle:

for 1:= 1 to n do

t[v[i].clave] = v[i];

Sencillamente determina la posición que le corresponde según el valor del

campo clave. El bucle lleva un tiempo de ejecución de complejidad O(n).

Esta ordenación tan sencilla que se ha expuesto es un caso particular del

método de ordenación por urnas (binsort). Este método utiliza urnas, cada urna

contiene todos los registros con una misma clave.

El proceso consiste en examinar cada registro r a clasificar y situarle en la

urna i, coincidiendo i con el valor del campo clave de r. En la mayoría de los casos en

que se utilice el algoritmo, será necesario guardar más de un registro en una misma

urna por tener claves repetidas. Entonces estas urnas hay que concatenarlas en el

orden de menor índice de urna a mayor, así quedará el array en orden creciente

respecto al campo clave.

ALGORITMO DE ORDENACIÓN BINSORT.

Se considera que el campo clave de los registros que se van a ordenar son números

enteros en el rango 1 .. m. Son necesarias m urnas por lo que es necesario definir

Page 19: Reporte metodos de busqueda y ordenamiento

17

um vector de m urnas. Las urnas pueden ser representadas por listas enlazadas,

cada elemento de la lista contiene un registro cuyo campo clave es el

correspondiente al de la urna en la que se encuentra. Así en la urna 1 se sitúan los

registros cuyo campo clave sea igual a 1, en la urna 2 los registros cuyo campo clave

sea 2, y así sucesivamente en la urna i se sitúan los registros cuyo campo clave sea

igual a i.

Una vez que se hayan distribuido los registros en las diversas urnas es

necessário concatenar las listas.

En la siguiente figura se muestra cómo realizar la concatenación.

Figura 12

MÉTODO DE RADIXSORT

Este método puede considerarse como una generalización de la clasificación por

urnas. Aprovecha la estrategia de la forma más antigua de clasificación manual,

consistente en hacer diversos montones de fichas, cada uno caracterizado por tener

sus componentes un mismo dígito (letra, si es alfabética) en la misma posición; estos

montones se recogen en orden ascendente y se reparte de nuevo en montones

según el siguiente dígito de la clave.

Como ejemplo, suponer que se han de ordenar estas fichas identificadas por

tres dígitos:

Page 20: Reporte metodos de busqueda y ordenamiento

18

Figura 13

Atendiendo al dígito de menor peso (unidades) las fichas se distribuyen en

montones del 0 al 9;

Figura 14

Recogiendo los montones en orden, la secuencia de fichas queda:

Figura 15

De esta secuencia podemos decir que está ordenada respecto al dígito de

menor peso, respecto a las unidades. Pues bien, ahora de nuevo se distribuye la

secuencia de fichas en montones respecto al segundo dígito:

Figura 16

Recogiendo de nuevo los montones en orden, la secuencia de fichas queda:

Page 21: Reporte metodos de busqueda y ordenamiento

19

Figura 17

En este momento esta secuencia de fichas ya están ordenadas respecto a los

dos últimos dígitos, es decir, respecto a las decenas. Por último, se distribuye las

fichas en montones respecto al tercer dígito:

Figura 18

Recogiendo de nuevo los montones en orden, la secuencia de fichas queda ya

ordenada:

194, 216, 236, 247, 345, 365, 389, 425, 431, 467, 529, 572, 672, 721, 746, 834, 836,

891.

ALGORITMO DE ORDENACIÓN RADIXSORT

La idea clave de la ordenación Radixsort (también llamada por residuos) es clasificar

por urnas primero respecto al dígito de menor peso (menos significativo) dk, después

concatenar las urnas, clasificar de nuevo respecto al siguiente dígito dk −1, y así

sucesivamente se sigue con el siguiente dígito hasta alcanzar el dígito más

significativo , en ese momento la secuencia estará ordenada. La concatenación de

las urnas consiste en enlazar el final de una con el frente de la siguiente.

Al igual que en el método de Binsort, las urnas se representan mediante un

vector de listas. En el caso de que la clave respecto a la que se ordena sea un

entero, se tendrán 10 urnas, numeradas de 0 a 9. Si la clave respecto a la que se

Page 22: Reporte metodos de busqueda y ordenamiento

20

ordena es alfabética, habrá tantas urnas como letras distintas, desde la urna que

represente a la letra a hasta la z.

Para el caso de que clave sea entera, en primer lugar se determina el máximo

número de dígitos que puede tener la clave. En un bucle de tantas iteraciones como

máximo de dígitos se realizan las acciones de distribuir por urnas los registros,

concatenar.

La distribución por urnas exige obtener el dígito del campo clave que se

encuentra en la posición definida por el bucle externo, dicho dígito será el índice de

la urna.

Page 23: Reporte metodos de busqueda y ordenamiento

21

CONCLUSIÓN

Un aprendizaje que se obtuvo al realizar esta investigación es que se conoció cada

uno de los tipos de métodos de búsqueda ya que al momento de hacer un programa

extenso podríamos utilizar algunos de estos métodos y así encontrar la información

más rápida y no perder tanto tiempo.

Al comparar con las demás definiciones y funciones de cada uno de los

métodos de búsqueda pude notar que este método es mas eficiente y entendible que

los demás. Es algoritmo conocido como quicksort (ordenación rápida) recibe el

nombre de su autor, Tony Hoare.

La idea del algoritmo es simple, se basa en la división em particiones de la

lista a ordenar, por lo que se puede considerar que aplica la técnica divide y

vencerás. El método es, posiblemente, el más pequeño de código, más rápido, más

elegante, más interesante y eficiente de los algoritmos de ordenación conocidos.

Page 24: Reporte metodos de busqueda y ordenamiento

22

OTRAS FUENTES CONSULTADAS

Métodos de búsqueda. Internet. En línea. Página consultada el día 29 de noviembre

del 2014. Disponible en: http://es.slideshare.net/jaironitsed/metodos-de-ordenacion-

ordenamiento-y-busqueda-algoritmos.

Métodos de búsqueda. Internet. En línea. Página consultada el día 29 de noviembre

del 2014. Disponible en: http://programandoconjava.es.tl/Metodos-De-Busqueda-y-

Orenacion.html.

Métodos de búsqueda. Internet. En línea. Página consultada el día 29 de noviembre

del 2014. Disponible en:

http://estructurasdatoscatolica.blogspot.mx/2010/05/metodos-ordenamiento-y-

busqueda.html.

Métodos de búsqueda. Internet. Fuera de línea. Página consultada el día 29 de

noviembre del 2014. Disponible en:

http://www.paginasprodigy.com/edserna/cursos/estddatos/notas/Unidad3.Ordenamie

ntos.pdf

Métodos de búsqueda. Internet. Fuera de línea. Página consultada el día 29 de

noviembre del 2014. Disponible en:

http://www.aliatuniversidades.com.mx/bibliotecasdigitales/pdf/sistemas/Estructura_de

_datos/Estructura_de_datos_Parte_1.pdf.