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

Algorithms In Action - Heapsort

Heapsort, N log N sorts

Lecture Aide Recommended
Self-study Supplement Recommended
Standalone Recommended
Debugging Aide Not Recommended
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


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 general impression about user interface is good. In the Algorithm window the user can see the program code either in real program code mode or in natural language mode. It is beneficial to have lot of comments available for observing the process. By clicking parts of the program code it is possible to get some explanation in natural language to Explanation window. Parts of pseudocode can be opened or closed, which changes the stepsize of the visualization. The Help window offers advice about what the user can do with each clickable item in Algorithm window or "AIA: Heapsort window". The "AIA: Heapsort 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 also buttons with names Step, Back, Run, Pause and Reset, 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. Both the tree view and the array view are shown.


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 dif´Čüculties for overall attention. Colors are used to show the partitions, the sorted elements and the inactive elements. 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. Unfortunately, the overview doesn’t explain this as well as it could. The source code display shows fully commented source code for the algorithm. Unfortunately, this proves less useful when the visualization is actually running. 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. 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)
A strategy for managing content complexity, Visual representations for recursive algorithms, Animating Recursive Algorithms
No votes yet
Your rating: None
AV of the Day