Peter Weigel and Andreas Boltzmann did a really nice job on visualizing the internal workings of different sorting algorithms. Their simulation also indicates the huge performance penalties of O(N^2) complexity approaches (e.g. Bubblesort) in comparison to O(N * log(N)) complexity (e.g. Quicksort).
The original implementation consisted of a Java top-level Window with German localization, so I did a quick hack and threw it all into an applet container, as well as translating it to English.