Визуализация сортировки

Ваша задача за эти два урока (если повезёт; а если не повезёт — то за ближайшую неделю) написать визуализатор алгоритмов сортировки.

Ваша программа должна уметь визуализировать следующие алгоритмы:

Размер массива, который сортируется, либо зафиксирован (например, 10)  — это вариант похуже, либо задаётся пользователем — это вариант получше.

Числа, которые содержатся в массиве изначально, либо зафиксированы  — это вариант похуже, либо выбраны наугад — это вариант получше. Совсем хорошо, если у пользователя есть возможность ввести числа самостоятельно.

Примеры неплохих визуализаторов:
http://rain.ifmo.ru/cat/view.php/vis/sorts

Наконец, парочка видео на youtube:
http://www.youtube.com/watch?v=oiCe1x38Fhc
http://www.youtube.com/watch?v=vxENKlcs2Tw