The Algorithm Visualization Catalog is a comprehensive collection of links to algorithm visualizations, or AVs.

Algorithms In Action - Quicksort

Quicksort, N log N sorts

AIA Quicksort image
AIA Quicksort Image

Lecture Aide Recommended
Self-study Supplement Recommended
Standalone Recommended
Debugging Aide Has Potential
Delivery Method(s)
Java Applet
Algorithms In Action
Project Relationship
Part of project
Linda Stern, Lee Naish, Harald Sondergaard
University of Melbourne
Activity Level(s)
Animation, Canned data, Random data, Step control
Source Code License
First Published
Last Modified
Awards Award Winner - 2010


The applet launches multiple windows. The Explanation window gives a brief description of the algorithm.The Algorithm window shows pseudocode, with the novel ability to expand the level of detail. The AIA window shows the animation. The Help window shows hints about use of controls that the mouse is currently over.Clicking parts of the program code will show an explanation in natural language within the Explanation window. The "AIA: Quicksort window" shows a set of randomized numbers and right above them vertical bars with varying length that corresponds to the size of each number. In the windows there are Step, Back, Run, Pause and Reset buttons, as well as set of menu controls for fine-tuning. The basic functionality is based on seeing first the vertical bars in a randomized order and step by step the algorithm will arrange the bars into ascending or descending order.


The user interface is good overall, and there is a lot of functionality to the AV. It works well and shows nice, intuitive visualizations. Having four different windows that can be a positive or negative thing. It may make it easy to handle each window separately or alternatively it can cause difficulties for overall attention. Colors are used to show the partitions, the sorted elements and the inactive elements. They clearly show the pivot and the partition boundaries and the top and bottom values (unfortunately, these are labeled with the uninformative i and j). It also builds a hierarchy in a second sub-visualization that shows each sub array as it is being sorted, giving a nice picture of how the array is being divided up. (IMPORTANT: You must "expand" the quicksort recursive calls near the bottom of the pseudocode to see the array decomposition. This is HIGHLY RECOMMENDED.) For animation control, there is a speed control as well as pause, step and back buttons. There are a number of options for data – random, sorted, reverse sorted, all equal, and user entered. Another nice feature is the ability to pick different pivot choosing algorithms (right, random, middle of three random and middle of three). The source code display shows fully commented source code for the algorithm. A nice feature is that the code is instrumented to be foldable - replacing a collection of steps (like a swap) with a high level piece of pseudocode. Even better, this affects the visualization - when steps have been abstracted away they happen atomically in the visualization. The quiz is less useful. It can’t be used in conjunction with the visualization and mostly asks questions that can be answered (or perhaps even have to be answered) as the result of memorizing some of the overview explanation rather than as a result of working with the visualization. Also, while it provides feedback after each question, it doesn’t give any sort of final assessment of the overall score. Tthere seems to be a bug in the quiz code. There are actually three “modes”: the normal one, one called “self test” and the quiz. When I tried “self test” the only thing that seemed to happen is that the overview window was hidden. When I went to the quiz mode, the overview came back.

Usage Notes

The link takes you to the AIA front page, where you click the "enter" button to reach the index page. From there, click on the link to the desired AV, and it will load as a multi-paned Java applet. Note that the level of detail shown in the visualization is directly tied to the level of detail that you choose to expose in the pseudocode pane.

Field Report(s)
Field Report: 1
A strategy for managing content complexity in algorithm animation, Visual representations for recursive algorithms, Animating Recursive Algorithms
Average: 5 (1 vote)
Your rating: None
AV of the Day