Settings

Theme

Ask HN: Best resource to learn applications of algorithms

19 points by chedine 4 years ago · 5 comments · 1 min read


Lot of resources to learn classic and modern algorithms and data structures. But is there a good resource guide on how they are applied. Especially the non obvious applications? For example when i learnt shortest path algo is used in context aware image resizing, my mind was wow, thats clever. Is there a good collection of such applications?

sitkack 4 years ago

It is usually in the optimization of some problem.

Bin packing (loading transport, scheduling), min/max of a function, least steps, least travel. One of the big applications of early computers were in ballistics tables and cut and fill for road and rail lines. Another being scheduling (classes, specialized staff, etc).

If you can't find problems to apply your algorithm knowledge to, I'd recommend compilers and 3d printing/design.

http://www.learncivilengineering.com/wp-content/uploads/2014...

https://hrcak.srce.hr/file/172575

I recommend checking out Skiena's "Algorithm Design Manual" [1] if you haven't already.

[1] https://www.algorist.com/

[2] https://www.algorist.com/algowiki/index.php/Chapter_10#Desig...

  • markus_zhang 4 years ago

    Just a note I think game programming could also be good place to find applications.

    • sitkack 4 years ago

      Good point! Compilers, Databases, Games or 3D design all provide a pretty rich domain to explore for algorithmic problems. I think you are even more spot on, because if you start with a game engine for any of those domains, it supports a really rich top level environment. If you write your database in a game engine, you have a built in visualization system for internal processes and data structures, same for compilers or 3d design.

nso95 4 years ago

Algorithmic Thinking might be what you're looking for - https://www.amazon.com/Algorithmic-Thinking-Problem-Based-Da...

eatonphil 4 years ago

Try finding an entry in a list of 100 elements. Then try finding an entry in a list of 10 million elements.

Then make a hash table out of the list and try finding an entry in the hash table of 100 elements and the hash table of 10 million elements.

If you want to take it further, try building an in-memory database. Benchmark how it works with and without indexes as the number of items in the database grows.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection