(Part 2) Best algorithms and data structures books according to redditors

Jump to the top 20

We found 472 Reddit comments discussing the best algorithms and data structures books. We ranked the 104 resulting products by number of redditors who mentioned them. Here are the products ranked 21-40. You can also go back to the previous section.

Next page

Subcategories:

Generic algorithms books
Memory management algorithms books
Data structure books

Top Reddit comments about Programming Algorithms:

u/blaackholespace · 18 pointsr/math

> Mathematical Logic

It's not exactly Math Logic, just a bunch of techniques mathematicians use. Math Logic is an actual area of study. Similarly, actual Set Theory and Proof Theory are different from the small set of techniques that most mathematicians use.

Also, looks like you have chosen mostly old, but very popular books. While studying out of these books, keep looking for other books. Just because the book was once popular at a school, doesn't mean it is appropriate for your situation. Every year there are new (and quite frankly) pedagogically better books published. Look through them.

Here's how you find newer books. Go to Amazon. In the search field, choose "Books" and enter whatever term that interests you. Say, "mathematical proofs". Amazon will come up with a bunch of books. First, sort by relevance. That will give you an idea of what's currently popular. Check every single one of them. You'll find hidden jewels no one talks about. Then sort by publication date. That way you'll find newer books - some that haven't even been published yet. If you change the search term even slightly Amazon will come up with completely different batch of books. Also, search for books on Springer, Cambridge Press, MIT Press, MAA and the like. They usually house really cool new titles. Here are a couple of upcoming titles that might be of interest to you: An Illustrative Introduction to Modern Analysis by Katzourakis/Varvarouka, Understanding Topology by Shaun Ault. I bet these books will be far more pedagogically sound as compared to the dry-ass, boring compendium of facts like the books by Rudin.

If you want to learn how to do routine proofs, there are about one million titles out there. Also, note books titled Discrete Math are the best for learning how to do proofs. You get to learn techniques that are not covered in, say, How to Prove It by Velleman. My favorites are the books by Susanna Epp, Edward Scheinerman and Ralph Grimaldi. Also, note a lot of intro to proofs books cover much more than the bare minimum of How to Prove It by Velleman. For example, Math Proofs by Chartrand et al has sections about doing Analysis, Group Theory, Topology, Number Theory proofs. A lot of proof books do not cover proofs from Analysis, so lately a glut of new books that cover that area hit the market. For example, Intro to Proof Through Real Analysis by Madden/Aubrey, Analysis Lifesaver by Grinberg(Some of the reviewers are complaining that this book doesn't have enough material which is ridiculous because this book tackles some ugly topological stuff like compactness in the most general way head-on as opposed to most into Real Analysis books that simply shy away from it), Writing Proofs in Analysis by Kane, How to Think About Analysis by Alcock etc.

Here is a list of extremely gentle titles: Discovering Group Theory by Barnard/Neil, A Friendly Introduction to Group Theory by Nash, Abstract Algebra: A Student-Friendly Approach by the Dos Reis, Elementary Number Theory by Koshy, Undergraduate Topology: A Working Textbook by McClusckey/McMaster, Linear Algebra: Step by Step by Singh (This one is every bit as good as Axler, just a bit less pretentious, contains more examples and much more accessible), Analysis: With an Introduction to Proof by Lay, Vector Calculus, Linear Algebra, and Differential Forms by Hubbard & Hubbard, etc

This only scratches the surface of what's out there. For example, there are books dedicated to doing proofs in Computer Science(for example, Fundamental Proof Methods in Computer Science by Arkoudas/Musser, Practical Analysis of Algorithms by Vrajitorou/Knight, Probability and Computing by Mizenmacher/Upfal), Category Theory etc. The point is to keep looking. There's always something better just around the corner. You don't have to confine yourself to books someone(some people) declared the "it" book at some point in time.

Last, but not least, if you are poor, peruse Libgen.

u/bitshifternz · 17 pointsr/gamedev

Are we OK with warez here? This is not a free book as far as I'm aware: http://www.amazon.com/Core-Techniques-Algorithms-Game-Programming/dp/0131020099

u/4THOT · 17 pointsr/suggestmeabook

Think Like A Programmer is the exact book you're looking for.

u/MysteriousSeaPeoples · 15 pointsr/math

I don't think that is a very compelling argument, unless we believe mathematicians can do no notational wrong :-) The imprecise, ambiguous, sometimes obfuscatory notation that arises in multivariable calculus and the calculus of variations is a well known and frequently discussed issue. I think we underestimate the difficulty it causes to students, especially to students coming from other disciplines who aren't steeped in the mathematical vernacular.

It's been problematic enough that there are some high profile and semi-accepted attempts to refine the notation, such as the functional notation used in Spivak's Calculus on Manifolds, which is based in an earlier attempt from the 50s if I remember correctly. Another presentation of physics motivated in large part by fixing the notation is Sussman & Wisdom's Structure and Interpretation of Classical Mechanics which adopts Spivak's notation, and also uses computer programs to describe algorithms more precisely.

u/chamcham123 · 13 pointsr/compsci

Proving algorithms is much harder than coding algorithms. I think you should get good at doing the analysis yourself. It is a very valuable skill.

There are entire books dedicated to string matching. Maybe something similar to your idea is in one of them.

Here are a couple:
https://www.amazon.com/Algorithms-Strings-Trees-Sequences-Computational/dp/0521585198/

https://www.amazon.com/Algorithms-Strings-Maxime-Crochemore/dp/1107670993/

Also, in the C code, why are you starting the clock before the “start of program” print statement (instead of after)? Printing text to the screen is a slow process and will add a lot of time to the clock.

u/hefios · 8 pointsr/learnprogramming

I think that Problem Solving with Algorithms and Data Structures on interactivepython is actually perfect to start with - it gives you a good overview of both the technical concepts and implementations. It's not extremely rigorous, either.

Why not try going through it, and learn whatever you can? It's actually an interactive version of the book Problem Solving with Algorithms and Data Structures by Brad Miller and David Ranum (you can find a copy of the PDF here), which is one of the recommended textbooks of MIT's 6.006 Introduction to Algorithms along with CLRS.

On another note: if you'd like an language-agnostic approach that focuses more on algorithmic thinking, analysis, and some implementation in psuedocode, check out Algorithms: Design and Analysis offered by Stanford on Coursera.

u/idsardi · 6 pointsr/cogsci

Stephen Palmer, Vision Science: From photons to phenomenology

http://www.amazon.com/Vision-Science-Phenomenology-Stephen-Palmer/dp/0262161834

u/Doglatine · 5 pointsr/askphilosophy

This may not be exactly what you were asking for, but as someone who's interested in both philosophical aesthetics and design, I've found basic color theory and vision science a very useful thing to learn about. Here's a great vision science book that keenly engages our experience of the world.

Another completely different source of inspiration I've found for thinking about abstract principles in aesthetic experience has come from Scott McCloud's book Understanding Comics. It really does explore a bunch of complex ideas about how we can piece together a beautiful/ugly/complex/dynamic/static/etc. picture of the world from two dimensional images. It's not just about comics at all.

u/ExtendedDeadline · 4 pointsr/matlab

https://www.amazon.com/First-Course-Finite-Elements/dp/0470035803

This is the reading required to get you started. Matlab is suitable for your purposes, but asking on this sub isn't useful.

Given the simplicity of your problem, you could probably derive an analytical or semi-analytical solution... But this depends on how linear your problem is.

u/tyroneslothtrop · 4 pointsr/learnpython

As I recall, that's a pretty decent book/course. It's free, so just dive in and you can decide yourself if it's worth sticking with. Plus, the favicon kind of looks like Professor Farnsworth, so that's a bonus, I guess.

Other options:

Keeping to python, there's these two:

http://www.brpreiss.com/books/opus7/html/book.html
http://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275

And the MIT 6.006 Intro. Algo. course is taught in Python:

http://courses.csail.mit.edu/6.006/spring11/notes.shtml

Beyond python this is a pretty standard text (and is used for 6.006):

http://mitpress.mit.edu/books/introduction-algorithms

u/acwaters · 4 pointsr/cpp

I would pick up both a data structures book and a C++ book; for instance, Data Structures and Algorithms in C++ and Programming: Principles and Practice Using C++.

Of course, you can use any data structures book you like; some are better than others, but they all teach the same stuff. But when you're learning the abstract stuff at the same time as basic programming, it can be nice to see examples in your language. Principles and Practice is one that I wholly recommend, though, as an excellent introduction to modern C++.

Also, be aware that there is way more bad C++ material out there than there is good C++ material. If in doubt, check out the semi-official book list or ask around here.

u/BulkyProcedure · 3 pointsr/learnpython

I just recently discovered pythonbooks.org and it looks like a pretty good resource for books on Python, and it has categories for beginner, intermediate, and more specific topics.

Here's pythonbooks.org page on networking.

Here's a link to High Performance Python (chapter on concurrency w/multiprocessing)

u/MtSopris · 3 pointsr/mathbooks

Here's an open source book on the topic. And also a more computationally focused texted as well.

I've also heard good things about [this one](Combinatorics: Topics, Techniques, Algorithms https://www.amazon.com/dp/0521457610/ref=cm_sw_r_cp_api_iCKzxbCVJHRQ4), [this one ](Combinatorics: A Guided Tour (MAA Textbooks) https://www.amazon.com/dp/0883857626/ref=cm_sw_r_cp_api_ZCKzxb7XY8RJS), and [this one](A Walk through Combinatorics: An Introduction to Enumeration and Graph Theory (Third Edition) https://www.amazon.com/dp/9814460001/ref=cm_sw_r_cp_api_pDKzxbR3CYQGF)

u/Neu_Ron · 3 pointsr/DevelEire

I found this super helpful.


https://hackernoon.com/14-patterns-to-ace-any-coding-interview-question-c5bb3357f6ed



https://medium.com/leetcode-patterns



https://www.amazon.com/Think-Like-Programmer-Introduction-Creative-ebook/dp/B008RQMDU4

The problem is youre not thinking fast enough or not identifying patterns a lot of questions are solved exactly the same.

u/aspartame_junky · 2 pointsr/AskReddit

It's on my bookshelf, although currently reading more on emergent phenomena, such as Philip Ball's Critical Mass: How One Thing Leads to Another and some books on game theory. GEB, of course, was a big influence too :)

Regarding perception, I still tend to refer to my undergrad perception textbook Vision Science: Photons to Phenomenology. It's highly readable, even if you're not a specialist, although if you are interested in something more easy to digest, there is Richard Gregory's seminal book Eye and Brain, which is a great introduction to vision science and perception.

u/jrmilinovich · 2 pointsr/generative

Would recommend The Nature of Code and Processing Handbook for parametric methods. Haven’t seen anything too comprehensive on AI models like GANs yet though.

u/JoseJimeniz · 2 pointsr/technology

You don't take Computer Science if you want to learn to program [languageName]. Computer Science is theory; and while you will use some programming language to explore the theory: it's not there to teach you a programming language.

If you want to learn to program, there are plenty of college level associates degrees for that.

Get ahold of Knuth's The Art of Computer Programming three volume set. He didn't even bother with a real language; but made up a hypothetical assembly pseudo-code language in order to explore concepts, algorithms, and costs.

tl;dr: Computer Science is to programming as architecture is to plumbing.

u/chromaticburst · 2 pointsr/programming

I like that term too. Even in books 20+ years old (like this one) it was called VOP. However, nowadays the Haskell community emphasizes composition over immutability.

u/BrainDeadUnit · 2 pointsr/compsci

https://smile.amazon.com/Art-Computer-Programming-Fascicle-Millennium/dp/0201853922

And

https://smile.amazon.com/MMIX-Supplement-Computer-Programming-Volumes/dp/0133992314

The former is written by Knuth -- it focuses on the machine and AL itself. The latter is written by another author that updates the programs in the first three volumes to take advantage of MMIX.

u/orichalcum · 2 pointsr/Python

I've only used cython a couple times but my experience was fantastic.

In the first case I had a simulator that was spending most of its time calculating distances between points and the nearest lines. I knew my algorithm was good, but profiling showed that the bare arithmetic was enough to make my code unacceptably slow.

Just extracting this function to a .pyx file and setting up the build correctly got me a 5x speedup. Then I added typedefs for the ints and floats and got an additional 10x speedup.

After crowing about this to a colleague she wanted to use cython to speed up a slow loop in some data analysis code. Again we got 5x just for putting the slow part in a .pyx file. There was a little more effort here figuring out how to correctly declare numpy arrays, but after that she also saw a roughly 10x additional speedup.

In both cases there was some necessary upfront work of profiling the code and refactoring to isolate the computationally intensive part. But if this is straightforward, cython can be a very quick win.

I recommend the book High Performance Python

http://www.amazon.com/High-Performance-Python-Performant-Programming/dp/1449361595/ref=sr_1_1?ie=UTF8&qid=1425266485&sr=8-1&keywords=high+performance+python

which taught me a lot about profiling, cython, and other tools for speeding up Python code.

u/Dreynsen · 2 pointsr/gamedev

I had a look through Core Techniques and Algorithms in Game Programming at the library, and it's now on my wish list. I haven't read it through yet, but it looks like a really good higher level overview of some things.

Does anyone know any more about this book?

u/arcsecond · 2 pointsr/raspberry_pi

So, (IMO) the raspberry pi doesn't specifically bring anything to learning C++ that I think you couldn't get on any other computer. And I'm assuming you have a computer because you're posting here (could be a phone but i don't know).

If you've got windows I tend towards Visual Studio and on a Mac I'd go with Xcode. When I'm in Linux I tend to just go straight to gcc and make (this won't make sense to you yet)

Books: These are the ones that were used in my C++ focused classes:

Big C++
ADTs, Data Structures and Problem Solving in C++

Hope this helps.

u/amalthea5 · 2 pointsr/cpp

Keep learning it! I thought I knew C++ pretty well. Then I started my data structures class. This book has greatly expanded my understanding of C++. I'm still not even close to done. But I'm working on other languages and learning how compilers work now as well. It never ends muwhahaha

u/hhrjrq · 1 pointr/cpp

I like this book: http://www.amazon.de/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275

It starts with quickly skimming over the basics because it assumes the reader to be familiar with C or Java. Later it deals with algorithms and data structures. Those were always my favorite programs to learn a new language.

Oh and I use Emacs but I think you are fine with Eclipse.

u/turning_tesseract · 1 pointr/compsci

For Algorithms and Data Structures, I would recommend the book by Goodrich and Tamassia. There are three versions of the book that you can choose from, depending upon which programming language you are most comfortable with - Java, Python, or C++ .

u/robinhoode · 1 pointr/math

Yeah, that's my point.. I was looking in Knuth's book for examples..

u/unknownengineering · 1 pointr/cscareerquestions

https://www.amazon.com/Algorithms-Sanjoy-Dasgupta-ebook/dp/B006Z0QR3I

​

This one is horrible, and made me want to kill myself when I took the course. Probably also offers good insight into the world you will be living in if you go this route

u/OrionisBeta · 1 pointr/learnmath
u/Warlord_Okeer_ · 1 pointr/cscareerquestions

It's all the same material. Here's the book we used in uni:
https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275/ref=sr_1_1?keywords=Data+Structures+and+Algorithms+in+C%2B%2B&qid=1558918108&s=books&sr=1-1

These authors wrote the same book in like 6 languages, just find the language you want.

u/CSMastermind · 1 pointr/learnprogramming

Entrepreneur Reading List


  1. Disrupted: My Misadventure in the Start-Up Bubble
  2. The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win
  3. The E-Myth Revisited: Why Most Small Businesses Don't Work and What to Do About It
  4. The Art of the Start: The Time-Tested, Battle-Hardened Guide for Anyone Starting Anything
  5. The Four Steps to the Epiphany: Successful Strategies for Products that Win
  6. Permission Marketing: Turning Strangers into Friends and Friends into Customers
  7. Ikigai
  8. Reality Check: The Irreverent Guide to Outsmarting, Outmanaging, and Outmarketing Your Competition
  9. Bootstrap: Lessons Learned Building a Successful Company from Scratch
  10. The Marketing Gurus: Lessons from the Best Marketing Books of All Time
  11. Content Rich: Writing Your Way to Wealth on the Web
  12. The Web Startup Success Guide
  13. The Best of Guerrilla Marketing: Guerrilla Marketing Remix
  14. From Program to Product: Turning Your Code into a Saleable Product
  15. This Little Program Went to Market: Create, Deploy, Distribute, Market, and Sell Software and More on the Internet at Little or No Cost to You
  16. The Secrets of Consulting: A Guide to Giving and Getting Advice Successfully
  17. The Innovator's Solution: Creating and Sustaining Successful Growth
  18. Startups Open Sourced: Stories to Inspire and Educate
  19. In Search of Stupidity: Over Twenty Years of High Tech Marketing Disasters
  20. Do More Faster: TechStars Lessons to Accelerate Your Startup
  21. Content Rules: How to Create Killer Blogs, Podcasts, Videos, Ebooks, Webinars (and More) That Engage Customers and Ignite Your Business
  22. Maximum Achievement: Strategies and Skills That Will Unlock Your Hidden Powers to Succeed
  23. Founders at Work: Stories of Startups' Early Days
  24. Blue Ocean Strategy: How to Create Uncontested Market Space and Make Competition Irrelevant
  25. Eric Sink on the Business of Software
  26. Words that Sell: More than 6000 Entries to Help You Promote Your Products, Services, and Ideas
  27. Anything You Want
  28. Crossing the Chasm: Marketing and Selling High-Tech Products to Mainstream Customers
  29. The Innovator's Dilemma: The Revolutionary Book that Will Change the Way You Do Business
  30. Tao Te Ching
  31. Philip & Alex's Guide to Web Publishing
  32. The Tao of Programming
  33. Zen and the Art of Motorcycle Maintenance: An Inquiry into Values
  34. The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity

    Computer Science Grad School Reading List


  35. All the Mathematics You Missed: But Need to Know for Graduate School
  36. Introductory Linear Algebra: An Applied First Course
  37. Introduction to Probability
  38. The Structure of Scientific Revolutions
  39. Science in Action: How to Follow Scientists and Engineers Through Society
  40. Proofs and Refutations: The Logic of Mathematical Discovery
  41. What Is This Thing Called Science?
  42. The Art of Computer Programming
  43. The Little Schemer
  44. The Seasoned Schemer
  45. Data Structures Using C and C++
  46. Algorithms + Data Structures = Programs
  47. Structure and Interpretation of Computer Programs
  48. Concepts, Techniques, and Models of Computer Programming
  49. How to Design Programs: An Introduction to Programming and Computing
  50. A Science of Operations: Machines, Logic and the Invention of Programming
  51. Algorithms on Strings, Trees, and Sequences: Computer Science and Computational Biology
  52. The Computational Beauty of Nature: Computer Explorations of Fractals, Chaos, Complex Systems, and Adaptation
  53. The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine
  54. Computability: An Introduction to Recursive Function Theory
  55. How To Solve It: A New Aspect of Mathematical Method
  56. Types and Programming Languages
  57. Computer Algebra and Symbolic Computation: Elementary Algorithms
  58. Computer Algebra and Symbolic Computation: Mathematical Methods
  59. Commonsense Reasoning
  60. Using Language
  61. Computer Vision
  62. Alice's Adventures in Wonderland
  63. Gödel, Escher, Bach: An Eternal Golden Braid

    Video Game Development Reading List


  64. Game Programming Gems - 1 2 3 4 5 6 7
  65. AI Game Programming Wisdom - 1 2 3 4
  66. Making Games with Python and Pygame
  67. Invent Your Own Computer Games With Python
  68. Bit by Bit
u/New_Age_Dryer · 1 pointr/UMD

I don't know why you're getting downvoted.

Unless you want to learn programming and what it entails (algorithms and data structures), this is fine. A course, in all honesty, would be too slow. The majority of the material in the codeacademy course, it appears, is covered in the official Python tutorial, which goes even further in depth. Here's to save you googling:

u/myfootinyourmouth · 1 pointr/math

For compsci you need to study tons and tons and tons of discrete math. That means you don't need much of analysis business(too continuous). Instead you want to study combinatorics, graph theory, number theory, abstract algebra and the like.

Intro to math language(several of several million existing books on the topic). You want to study several books because what's overlooked by one author will be covered by another:

Discrete Mathematics with Applications by Susanna Epp

Mathematical Proofs: A Transition to Advanced Mathematics by Gary Chartrand, Albert D. Polimeni, Ping Zhang

Learning to Reason: An Introduction to Logic, Sets, and Relations by Nancy Rodgers

Numbers and Proofs by Allenby

Mathematics: A Discrete Introduction by Edward Scheinerman

How to Prove It: A Structured Approach by Daniel Velleman

Theorems, Corollaries, Lemmas, and Methods of Proof by Richard Rossi

Some special topics(elementary treatment):

Rings, Fields and Groups: An Introduction to Abstract Algebra by R. B. J. T. Allenby

A Friendly Introduction to Number Theory Joseph Silverman

Elements of Number Theory by John Stillwell

A Primer in Combinatorics by Kheyfits

Counting by Khee Meng Koh

Combinatorics: A Guided Tour by David Mazur


Just a nice bunch of related books great to have read:

generatingfunctionology by Herbert Wilf

The Concrete Tetrahedron: Symbolic Sums, Recurrence Equations, Generating Functions, Asymptotic Estimates by by Manuel Kauers, Peter Paule

A = B by Marko Petkovsek, Herbert S Wilf, Doron Zeilberger

If you wanna do graphics stuff, you wanna do some applied Linear Algebra:

Linear Algebra by Allenby

Linear Algebra Through Geometry by Thomas Banchoff, John Wermer

Linear Algebra by Richard Bronson, Gabriel B. Costa, John T. Saccoman

Best of Luck.

u/vahbuna · 1 pointr/compsci

I would recommend this book. There is a 2nd edition which deals with data structures in C++ as well.
http://www.amazon.com/Data-Structures-Using-Aaron-Tenenbaum/dp/0131997467

u/MCRusher · 1 pointr/cprogramming

https://www.amazon.com/Data-Structures-Using-Aaron-Tenenbaum/dp/0131997467

And 100% sure that the ansi c first edition book is not free.

u/nj45684 · 1 pointr/math
u/Grogie · 1 pointr/learnpython

I think the consensus for a good introduction book to python is Automate the Boring Stuff with Python. I knew C++ when I started python and learned it though an Algorithms and Datastructures course in my masters degree. the book from that class is here : Data Structures and Algorithms in Python. Finally I found these tutorials at filling in gaps in my knowledge : Corey Schafer

u/whitelemur · 1 pointr/math

Can you give more detail about your present background/what sorts of combinatorics you're interested in? If you're new to combinatorics it's hard to do better than Miklos Bona's book.

u/zigzag32 · 1 pointr/MechanicalEngineering

You might look in to the documentation for Ansys, there is a lot of good detail regarding how it works and different models for validation of different FEA types.

A good book iA first course in Finite Elements

u/stoobertb · 1 pointr/learnprogramming