Radix Sort - ic-itcr.ac.cric-itcr.ac.cr/~ausanabria/files/2016IIScursos/datos/presentaciones/... ·...

36
Radix Sort Aurelio Sanabria Rodríguez Estructuras de datos II semestre, 2015

Transcript of Radix Sort - ic-itcr.ac.cric-itcr.ac.cr/~ausanabria/files/2016IIScursos/datos/presentaciones/... ·...

Radix Sort

Aurelio Sanabria RodríguezEstructuras de datos

II semestre, 2015

2

Agenda

● Inicios.● Descripción.● Algoritmo.● Pseudo código.● Rendimiento.● Otros recursos.

3

Inicios

● Utilizado para ordenar tarjetas perforadas.

4

Descripción

● Se puede considerar una versión aumentada del ordenamiento por urnas (binsort).

● Realiza un ordenamiento no-comparativo.● Descompone el elemento, esto puede

realizarze de dos formas:– Top-down (→MSD), : Solución recursiva.

– Bottom-up (←LSD), : Mucho más común.

5

Algoritmo

● Consiste en:

1.Separar los elementos a ordenar en urnas etiquetadas.

2.Cada urna tiene elementos con el mismo dígito en la misma posición.

3.Los elementos en estas urnas se unen en orden ascendente.

4.Se reparte de nuevo en las urnas según el siguiente dígito más significativo.

5.Termina cuando ya se llegó al dígito más significativo.

6

Algoritmo

7

Algoritmo

8

Algoritmo

9

Algoritmo

10

Algoritmo

11

Algoritmo

12

Algoritmo

13

Algoritmo

14

Pseudo código

15

RendimientoAlgoritmo Peor caso Mejor caso

Burbuja O(n2) O(n)

Inserción O(n2) O(n)

Merge Sort O(n log(n) ) O(n log(n) )

Quick Sort O(n2) O(n log(n) )

Radix Sort O(kn) O(n)

Heap Sort O(n2) O(n log(n) )

● Si los elemento a ordenar tienen largo (k) pequeño el rendimiento es muy bueno.

● Mientras más grande el largo de los elementos a ordenar, peor es el rendimiento.

16

Otros recursos

● Explicación del radix sort (Inglés):– http://www.youtube.com/watch?v=dHeTp6hO71U

● Vizualization of the radix sort:– http://www.youtube.com/watch?v=LyRWppObda4

– http://wiki.algoviz.org/search/node/radix%20sort

17

Bibliografía

● Joyanes, Luis. and Zahonero, Ignacio. Estructura de datos: algoritmos, abstracción y objetos. McGraw-Hill Interamericana de España, 1998.

● Leiserson, Charles E., Ronald L. Rivest, and Clifford Stein. Introduction to algorithms. Ed. Thomas H. Cormen. The MIT press, 2009.

● Gonnet GH. A Handbook of Algorithms and Data Structures. Addison-Wesley, Reading, Mass., 1984

Radix Sort

Aurelio [email protected]

ITCRCartago, 2014

Radix Sort

Aurelio Sanabria RodríguezEstructuras de datos

II semestre, 2015

2

Agenda

● Inicios.● Descripción.● Algoritmo.● Pseudo código.● Rendimiento.● Otros recursos.

3

Inicios

● Utilizado para ordenar tarjetas perforadas.

4

Descripción

● Se puede considerar una versión aumentada del ordenamiento por urnas (binsort).

● Realiza un ordenamiento no-comparativo.● Descompone el elemento, esto puede

realizarze de dos formas:– Top-down (→MSD), : Solución recursiva.

– Bottom-up (←LSD), : Mucho más común.

5

Algoritmo

● Consiste en:

1.Separar los elementos a ordenar en urnas etiquetadas.

2.Cada urna tiene elementos con el mismo dígito en la misma posición.

3.Los elementos en estas urnas se unen en orden ascendente.

4.Se reparte de nuevo en las urnas según el siguiente dígito más significativo.

5.Termina cuando ya se llegó al dígito más significativo.

6

Algoritmo

7

Algoritmo

8

Algoritmo

9

Algoritmo

10

Algoritmo

11

Algoritmo

12

Algoritmo

13

Algoritmo

14

Pseudo código

15

RendimientoAlgoritmo Peor caso Mejor caso

Burbuja O(n2) O(n)

Inserción O(n2) O(n)

Merge Sort O(n log(n) ) O(n log(n) )

Quick Sort O(n2) O(n log(n) )

Radix Sort O(kn) O(n)

Heap Sort O(n2) O(n log(n) )

● Si los elemento a ordenar tienen largo (k) pequeño el rendimiento es muy bueno.

● Mientras más grande el largo de los elementos a ordenar, peor es el rendimiento.

16

Otros recursos

● Explicación del radix sort (Inglés):– http://www.youtube.com/watch?v=dHeTp6hO71U

● Vizualization of the radix sort:– http://www.youtube.com/watch?v=LyRWppObda4

– http://wiki.algoviz.org/search/node/radix%20sort

17

Bibliografía

● Joyanes, Luis. and Zahonero, Ignacio. Estructura de datos: algoritmos, abstracción y objetos. McGraw-Hill Interamericana de España, 1998.

● Leiserson, Charles E., Ronald L. Rivest, and Clifford Stein. Introduction to algorithms. Ed. Thomas H. Cormen. The MIT press, 2009.

● Gonnet GH. A Handbook of Algorithms and Data Structures. Addison-Wesley, Reading, Mass., 1984

Radix Sort

Aurelio [email protected]

ITCRCartago, 2014