
Data Structure Visualizations - n008
http://www.cs.usfca.edu/~galles/visualization/Algorithms.html
======
gavinpc
I dream of a world where this is built in everywhere that I write expressions.
It's so hard, and we desperately need it. Bret Victor has called a lot of
attention to this lately, and rightly so.

It's easy to forget how much we have to remember inside our heads just to work
with code. And why? Much of this work could and should be done by the machine,
which would free us to focus on what we want. But the need for context,
different execution environments, etc, all make this difficult to tackle
generally.

More and more lately, I find that I'm interested in _this problem_ more than
the code itself.

~~~
rtpg
I am totally on board with you on that one.

I remember checking out this book on graph drawing, and realizing how hard a
problem drawing arbitrary data structures is. And what about functional code?
How do we visualize stateless algorithms?

I deeply want this to exist though. I feel like, much in the same way excel
secretely represents the core of what we want to do with computers, data
structure visualizations is the core of how we want to read code, especially
in "tight" code involving heavily coupled structures.

~~~
pelletier
My two cents: I've been working on visualising several data structures in
javascript code (want watch them evolve step by step):
[http://pelletierthomas.com/datastructures/exec/?file=heap/he...](http://pelletierthomas.com/datastructures/exec/?file=heap/heap.js)

------
lelandbatey
As someone who just finished a datastructre class (as in had my final just a
few days ago) I used the heck out of this site all semester long!

The visualization for B-trees and Red/black trees was totally invaluable!

~~~
FPSDavid
As someone who just finished a data structures class (as in had my final
yesterday), I wish I knew about this site before today!

------
gregfjohnson
I wrote a web site
[http://gregfjohnson.com/redblackbuilder.html](http://gregfjohnson.com/redblackbuilder.html)
that takes interactive algorithm visualization another step. I would be
delighted and appreciative if people go check it out and provide thoughts and
feedback. IMHO It is fun and informative to play with, and a great tool for
learning the algorithms.

It is specific to red-black trees, but I am considering adding other data
structure manipulation algorithms as well.

On insert and delete, you can single-step forward and backward and see the
tree manipulations at each step. Or, you can do the entire operation at once.

There is pseudo-code for insert and delete, and at each forward or backward
step the line of code being executed is highlighted.

------
capkutay
This was pretty valuable when I took algorithms from this professor. Things
like mergesort and indexing in B+ trees can seem very abstract when you try to
learn it via a snippet of java code. These visualizations are even more useful
if you need a refresher on algorithms for job interviews.

------
satyampujari
This is so useful. Here's another [http://www.sorting-
algorithms.com/](http://www.sorting-algorithms.com/)

~~~
rbolkey
I was using those animations as a refresher just this past week. Really
excellent work to whoever put that together.

------
FrankenPC
Wow, this is valuable. It's not the kooky new framework that rockets tech
forward, it's tools like this.

------
wijt
There are some great visualisations here. Coming up with good visualisations
is tricky. I can't help but mention my own attempt at a more general framework
for algorithm visualisation:
[http://will.thimbleby.net/algorithms/](http://will.thimbleby.net/algorithms/)

~~~
alok-g
Beautifully done! I wanted to build something like this for so long. No more
...! :-) (It's already there now.)

Edit: And why doesn't Google find the good stuff when I am looking for it
...?! :-)

------
olegstepanov
We did similar stuff 12 years ago when I was an undergrad at SpbITMO. The
website with the visualisers (in Russian) can be found here:
[http://rain.ifmo.ru/cat/view.php/vis](http://rain.ifmo.ru/cat/view.php/vis)

------
wlievens
You should check Amit Patel's blog articles, they are chuck full of
interactive visualisations that are really well executed.

~~~
vdm
[http://www.redblobgames.com/grids/hexagons/](http://www.redblobgames.com/grids/hexagons/)

~~~
wlievens
Thanks for the link. I was on my toilet computer and I still haven't got the
copy-and-paste business down on that thing.

I really appreciate how he writes his articles. More people should do this,
with the interactive illustrations.

------
enjalot
I just wish there was a button in each example that would populate with some
demo data. I like to watch something go and then figure out it out by playing
with the parameters. From this I don't immediately know what kind of inputs
and outputs to use/expect (integers? floats? strings?).

very sweet project tho!

------
antonius
Glad I found this to reiterate what I learned as my Data Structure exam is
tomorrow :)

------
GowGuy47
Just found out yesterday that I'll be having my first interview for a Google
Software Engineering position in about a month. This is truly going to be
invaluable, thank you!

------
mmanfrin
This is incredibly useful, as someone who is an engineer with a non-technical
degree.

Ironically (or perhaps coincidentally), I got my non-technical degree from the
very school this is hosted on.

------
deletes
Took a quick look at their insertion sort algorithm. It looks wrong, doing
unnecessary swaps, when moving elements up. For and extra O(1) memory your can
avoid that.

------
nu2ycombinator
I always had hard time learning algorithms through visualization softwares.
Most effective way for me was reading and visualizing in my mind.

------
crncosta
Amazing! thanks for share.

------
srchit
Awsome!! One of the best visualizations, I came across

------
ananth99
Thank you for this priceless resource.

------
alixaxel
Lovely!!

------
lisptime
thanks for sharing

