Big-O Quiz: An experiment with Google AppEngine

screenshot_bigoquiz_webOver the last few weeks I’ve been working on I wanted to learn the Big-O algorithmic complexity of the main algorithms and data structures by heart. So, of course, I first built a system to help me do that. and already do a good job of listing the information, but lets you check that you really know each one, and shows you the ones you keep getting wrong.

Tech I learned along the way

I find it very hard to resist a project when I see that it would let me play with multiple new things. This one was a chance to learn about:


I noticed that had some corrections and additions compared to And I made some additions of my own. I’ve listed it all here for anybody who is interested:

For instance, adds Graph Search algorithms such as Dijkstra’s and Bellman-Ford (missing from, under “Searching“. I instead listed the graph search algorithms in under “Graph Search”  and added more graph algorithms that I’d learned about recently in my Coursera course, though I’m tempted to create a completely different graph algorithms quiz: Kruskal’s Minimum Spanning Tree, Prim’s Minimum Spanning Tree, Floyd Warshall All Pairs Shortest Path, and Johnson’s All Pairs Shortest Path. also adds linear and binary search of arrays (missing from For I just split Array into sorted and unsorted in “Data Structure Operations”.

I found just one error on that was corrected on, though there might be others:

And I noticed that has some additional errors so I corrected those on and  filed github issues for bigoref:


  • has entries for Stack, but does not. I kept that in
  • has entries for Ternary Search Tree, apparently a kind of Trie (Prefix Tree), but does not. I kept this in Curiously, doesn’t have entries for regular Tries (Prefix Trees), or Suffix Trees. I added them to, though I’m not completely sure about the various best/worst/average time/space complexities.
  • uses the term “indexing” where uses “access”. I’ve stuck with “access” for
  • splits array into Basic Array and Dynamic Array, not allowing insertion or deletion in a Basic Array. I don’t find the distinction useful, so I kept it as just Array in