For anyone wanting to learn algorithms from one of the other heavyweights, not being a C developer, I found this series extremely beneficial: https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Str... It also helps that Robert Sedgewick has been in compsci forever (got hit PHC in 1975) and is one of the subject matter experts in algorithms.
Or the newer book with Java code. https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/03... Robert Sedgewick also has fantastic algorithms courses on Coursera.
Algorithms
101–110 of 163 posts
Re: Algorithms
#102Pair this up with this excellent lecture by the authors Sedgewick and Wayne: https://www.coursera.org/learn/algorithms-part1/home/welcome
Re: Algorithms
#103[0] https://www.coursera.org/learn/algorithm-design-analysis/
Re: Algorithms
#104Re: Algorithms
#105It's strange they didn't cover dynamic programming at all. IMO every course should include at least one classical example of dynamic programming. For example: https://en.wikipedia.org/wiki/Longest_increasing_subsequence https://en.wikipedia.org/wiki/Longest_common_subsequence_pro...
I'd never heard of the expression "dynamic programming". https://en.wikipedia.org/wiki/Dynamic_programming Am I to understand that it is "just" recursion with caching?
"just caching" is also hard to apply to e.g. the tower of hanoi problem.
Re: Algorithms
#106Earlier quoted context omitted.
Significant whitespace is great for technical interviews - you don't need to worry about matching brackets and whatnot. No brackets also means you have some more vertical space to work with on the whiteboard. Beyond that, if your interviewer is fluent in python, list comprehensions can greatly shorten the amount of boilerplate you have to write.
Amusingly, significant whitespace is the one reason I don't like using Python in whiteboard interviews - my handwriting is far from excellent on a board, and I don't want any ambiguity when reading my control flow. I'll definitely second the list comprehension point, though. Between that and pleasant string support, a lot of standard interview answers are maybe 50% as long in python as Java. Not easier, necessarily,…
Even if you aren't using python, it will give you more room to work (the other part of this is divide the board before you start).
Re: Algorithms
#107Can anyone recommend an alternative introduction to asymptotic notation?
Different in what way? The general idea is that something takes O(f(n)) time if it takes at most C·f(n) time for some constant C and all but finitely many values of n. The 'all but finitely many values' is what makes this definition 'asymptotic'. Basically 'O(f(n))' ignores constant factors and the behaviour at 'small' n (i.e. small inputs), the reasoning behind this is that an algorithm in O(f(n)) is faster than any…
Re: Algorithms
#108It's strange they didn't cover dynamic programming at all. IMO every course should include at least one classical example of dynamic programming. For example: https://en.wikipedia.org/wiki/Longest_increasing_subsequence https://en.wikipedia.org/wiki/Longest_common_subsequence_pro...
I'd never heard of the expression "dynamic programming". https://en.wikipedia.org/wiki/Dynamic_programming Am I to understand that it is "just" recursion with caching?
Re: Algorithms
#109Re: Algorithms
#110The Coursera Stanford [0] and Princeton [1] courses start again soon, February 20 to be exact. Not sure which one is better, but to refresh my atrophied CS skills of 10 years I've joined the Stanford course. Not sure how it compares to the Khan Algorithms course. Anyone have any feedback? [0] https://www.coursera.org/learn/algorithm-design-analysis/ [1] https://www.coursera.org/learn/algorithms-part1/
- 6-00-1x https://www.edx.org/course/introduction-computer-science-mit... (started)
- 6.00.2x https://www.edx.org/course/introduction-computational-thinki... (March)
All are good and are pitched at various levels of complexity. The Princeton course uses Java. Okay if you're into that sort of language/thinking. MIT is using Python. Found one using lisp, "Systematic Program Design" ~ https://www.edx.org/xseries/how-code-systematic-program-desi...