What happens when you attempt to demonstrate sorting algorithms using folk dancing? The result is slightly surreal and you'll probably always hum a tune in future when implementing a Bubble, Shell, Insert or Select sort.
You may well have seen many simulations of sorting algorithms that aim to show in novel ways how the algorithm works or perhaps doesn't work quite as well as it should. However I guarantee that you have never seen anything quite in the same league as the videos made by Sapientia University - they are simply crazy but in the nicest possible way.
Take one Central European folk dancing team, a small folk band and an added overlay showing array locations and get them to dance the algorithms in time to "appropriate" folk music. The result is slightly surreal and for a time at least slightly hypnotic.
What you have to do is just check that they are in fact implementing the algorithm correctly. The dancers have numbers stuck on their front and they do seem to look down and examine the value on another dancer before performing the dance routine dictated by the algorithm
To see what I mean try the simplest of all sorts, the Bubble sort:
All that happens is that adjacent partners swap if they are in the wrong slot until the algorithm is complete. Notice they have to do a final pass before they can decide that it really is "all sorted".
If you think that was too simple, try the Shell sort:
Shell sort is just a bubble sort but with the swaps occurring over greater distances reducing each time.
And for something simpler the Insert sort:
For the finale Select sort:
As I say delightful, amusing and slightly eccentric. We can look forward to the Fast Fourier waltz and the depth first tree walk.... Some how though I really don't think that they will manage the Quicksort as any type of dance - expect perhaps something really modern....
The BBC Micro was released on December 1, 1981. Nicknamed the Beeb over 1.5 million were sold and it inspired a generation of programmers and is still has dedicated community of retrocomputing en [ ... ]