Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I have recently found a strong renewed interest in the power of algorithms. Thinking about all of the sciences, computer science is still very much on the leading edge. There seems to be a lot of area left to explore with regard to applying algorithms correctly and devising entirely new ones.

For instance, the splay tree is arguably one of the more incredible data structures in all of computer science, and we didn't discover it until 1985. Think about all the undiscovered applications that may exist out there regarding such an algorithm. Contrast with how long mathematicians have had to play around with the ideas of Newton, et. al.

Another fun data structure is the skip list. This is probably the simplest probabilistic data structure you could hope to invent, and we didn't figure it out until 1989. 4 years after the splay tree. To me, this says "keep looking".



A commonly used algorithm that totally blew me away when I first encountered it was the Burrows-Wheeler transform for lossless string compression. [0] It rearranges characters in long input strings to increase compressibility by placing repeat characters closer together (you could do so with sorting too, but then lose the ability to recreate the original without associate metadata). Bloom Filters are a close second.

In terms of elegance, I believe it is a fight between CoDel [1] and Union-Find [2].

Speaking of Skip Lists, see also Fenwick Trees, not similar but you'd find them particularly interesting [3].

Also, on the topic of Splay Trees, because we are on Y Combinator, we mustn't go without mentioning Zippers [4].

[0] https://en.wikipedia.org/wiki/Burrows%E2%80%93Wheeler_transf...

[1] https://queue.acm.org/detail.cfm?id=2839461

[2] https://algs4.cs.princeton.edu/15uf/

[3] https://cp-algorithms.com/data_structures/fenwick.html

[4] https://stackoverflow.com/questions/380438/what-is-the-zippe...


> left to explore with regard to applying algorithms correctly.

Yes, and even just a trade-off based on context for where it will be used.

I've realized that lots of libraries I use are generalized (by nature of being an OSS lib) so they aren't going to be hyper-refined for my particular use case.

Usually an OSS lib will be better than something you can write in a day but if something is part of your product's competitive advantage, then you will probably be able to make a more optimized version than an open source lib.


> Thinking about all of the sciences, computer science is still very much on the leading edge.

What do you mean by this?


He means there's a lot of low hanging fruit left.


There is as much "low hanging fruit" left as in mathematics, economics,control theory,analytical chemistry and so on. Like the proverbial "100 dollar bill in the sidewalk" joke, any truly impactful, low-hanging fruit would have been taken eons ago. PhD dissertations, postdoc applications and tenure case presentations would love to use them.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: