Quicksort

Resumen: Esta lección trata de ilustrar uno de los algoritmos de ordenación más utilizados, el quicksort. En función de la edad de los estudiantes se puede introducir el concepto de recursividad.

Breve descripción: La ordenación de información (números, listas alfabéticas, etc.) es una tarea habitual en el procesamiento de datos. Hay muchos algoritmos de ordenación, aquí se va a presentar el funcionamiento del algoritmo quicksort, uno de los más rápidos, especialmente cuando se trabaja con listas muy largas.

El quicksort fue ideado por C. A. R. Hoare, y está basado en la técnica “divide y vencerás”, que permite, en promedio, ordenar n elementos en un tiempo proporcional a n log n.

Edad recomendada: A partir de 8 años

Nivel: Básico

Habilidades del siglo XXI: Pensamiento computacional, Creatividad

Objetivo: Esta lección está diseñada para introducir a los niños los algoritmos de ordenación, concretamente el algoritmo quicksort. Además, en función, de la edad y madurez de los niños se puede introducir el concepto de recursión.

Herramientas: Se van a necesitar un conjunto de elementos ordenables (contenedores con medidas y/o pesos diferentes, piezas de puzles con números, cartas, etc.). Para este ejemplo se ha escogido un palo de la baraja española.

84quicksort-figura1

 

Actividad práctica

Se va a ilustrar cómo funciona el algoritmo quicksort.

1. Se van a barajar las cartas.

84quicksort-figura2

2. Se va a escoger una de las cartas al azar, ese elemento lo vamos a denominar pivote.

84quicksort-figura3

3. Todas las tarjetas se comparan con el valor del pivote, y se crean dos listas, una con los valores más ligeros, que se colocan a la izquierda, y una con los valores más pesado para el pivote, que se colocan a la derecha. Si hay valores iguales a pivote puede ser colocado indiferentemente en cualquiera de las listas.

84quicksort-figura4

4. Repita el procedimiento con cada uno de los grupos resultantes. Un pivote se elige y se organiza en dos sublistas.

84quicksort-figura5

84quicksort-figura6

5. Repita este procedimiento en los grupos que faltan para que ningún grupo tiene más de un objeto en ella.

84quicksort-figura7

84quicksort-figura8

6. Una vez que todos los grupos se han dividido a los objetos individuales, los objetos estarán en orden del más ligero al más pesado.

84quicksort-figura9

84quicksort-figura10