tag:dreamwidth.org,2017-01-04:2713511bolsonbolsonbolson2017-05-09T20:09:10Ztag:dreamwidth.org,2017-01-04:2713511:400713Algorithms, the good parts2017-05-09T20:09:10Z2017-05-09T20:09:10Zpublic1These are things that actually have been useful or continue to be useful to my 16 year career as a software professional.<br /><br />Based on “Introduction to Algorithms” 3rd edition, (c) 2009<br />I had the 1st edition from 1990 when I used it in class around 2000, but all this is pretty foundational stuff that’s mostly stable over the last 20-30 years.<br /><br />I Mathematical Foundations<br />3 Growth of Functions<br /> This is important, everything else will refer to it<br /><br />II Sorting<br />Sorting was a foundational bit of CS when it was taught to me, and this was taught using about a dozen different sort algorithms. But what I think actually worth learning is:<br />6 Heapsort - and the section on “priority queues”<br />8.4 Bucket Sort - when ‘close enough’ is really fast<br />And what I sadly don’t see in the table of contents is <b>merge sortall of these</b> - stacks and queues, linked lists<br />11 Hash Tables - yes, all of javascript and ruby and python and perl are based on this<br />12 Binary Search Trees - another basic concept that I think is an important alternative to hashes<br /><br />VI Graph Algorithms<br />22 Elementary Graph Algorithms - breadth-first-search and depth-first-search are important concepts<br /><br />VII<br />27 Multithreaded Algorithms - sooner or later this will be important - thinking about concurrent programming is more and more important as our computer systems get more multi-core and more distributed.<br /><br />VIII<br />Appendix B: Sets, Etc<br /> More basic structures everything will refer to. A bit thick with notation, there ought to be simpler explanations of these things. If you want a reminder about what union and intersection of sets are, look here.<br /><br /><img src="http://www.dreamwidth.org/tools/commentcount?user=bolson&ditemid=400713" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/> comments