Hire The World’s
Top Talent On Demand

Toptal connects the top 3% of freelance developers all over the world.

Random Initial Order

Animation, code, analysis, and discussion of 8 sorting algorithms on random initial order.

How to use: Press “Play all”, or choose the button for the individual row/column to animate.

InsertionSelectionBubbleShell
Insertion on Random Initial Order
Selection on Random Initial Order
Bubble on Random Initial Order
Shell on Random Initial Order
MergeHeapQuickQuick3
Merge on Random Initial Order
Heap on Random Initial Order
Quick on Random Initial Order
Quick3 on Random Initial Order

DISCUSSION

A random initial order is often used to evaluate sorting algorithms in order to elucidate the “typical” case and to facilitate mathematical analysis. For some applications, however, this does not represent the typical case, so conclusions drawn here do not generalize.

Here we see the vast difference in speed between the O(n2) elementary sorting algorithms (insert, selection, bubble) and the more advanced algorithms.

KEY

  • Black values are sorted.
  • Gray values are unsorted.
  • A red triangle marks the algorithm position.
  • Dark gray values denote the current interval (shell, merge, quick).
  • A pair of red triangles marks the left and right pointers (quick).

Preparing for a technical interview? Check out our interview guides.