TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

How can I learn algorithm from scratch

14 点作者 ankit1911超过 10 年前
I had started with C programming on UNIX system about 3 years ago. Currently, I am comfortable with system & network programming. However, the biggest problem I face while coding is my lack of knowledge in the area of algorithm. A few weeks back someone suggested me a book named CLRS, however, even this introduction book is getting heavy now. I am very poor at mathematics. There are tons of experienced folks out here, so I would be very grateful if you guys can let me know how I should start on my way to be good at algorithms. Thanks.

5 条评论

brudgers超过 10 年前
The great thing about being very poor at mathematics is that it is easy to improve and to improve quickly...of course this requires accepting that being poor is an improvement over being very poor and that it will require much more effort to go from poor to mediocre.<p>The great thing about self-directed learning is that there is so much time over which to acquire new knowledge in the area. And in the age of the internet there are vast resources available on any computing topic.<p>The best resource for learning algorithms is Wikipedia. It doesn&#x27;t stand alone and a lot of the typical algorithm article will go over most people&#x27;s head but the more you learn the more of an article will make sense each time you come back to it.<p>Finally, there are only a few people who are objectively good at designing algorithms - Tarjan, Hoare, Dijkstra for example. Most of what is professionally good is pattern matching existing algorithms to new situations. That&#x27;s the art that Knuth has spent sixty years describing.
avinassh超过 10 年前
CLRS is quite &#x27;academic&#x27; and requires good understanding of mathematics. It&#x27;s a great book, but not a good one for beginners, imo. It will be difficult as self study for first timers. You can start with Datastructures and Algorithm Analysis in C by M. A. Weiss[0]. One more alternative is The Algorithm Design Manual by S. Skiena[1]. It&#x27;s also good and focuses more on algorithm, implementation (as opposed to math-y stuff of CLRS). If I were you, I would get both the books and read alternatively. Don&#x27;t miss out on exercises, they are very important.<p>I also suggest you to join this Coursera course, Algorithms: Design and Analysis by Tim Roughgarden[2]. Currently the course is open, so you can sign up for classes. The course is offered in two parts[3], complete both of them.<p>Once you are comfortable with basic concepts start solving questions&#x2F;puzzles online on sites like SPOJ[4], UVa[5], (YC-funded) HackerRank[6]. You could try TopCoder[7] also, but the questions are bit difficult. Hope this helps.<p>PS - You should study math, because it is important in Algorithms Analysis. You could try reading required parts of Concrete Mathematics by Knuth[8] or as you come across new concepts, Google and understand them.<p>[0] - <a href="http://www.amazon.com/dp/8177583581" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;dp&#x2F;8177583581</a><p>[1] - <a href="http://www.amazon.com/dp/1848000693" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;dp&#x2F;1848000693</a><p>[2] - <a href="https://www.coursera.org/course/algo" rel="nofollow">https:&#x2F;&#x2F;www.coursera.org&#x2F;course&#x2F;algo</a><p>[3] - <a href="https://www.coursera.org/course/algo2" rel="nofollow">https:&#x2F;&#x2F;www.coursera.org&#x2F;course&#x2F;algo2</a><p>[4] - <a href="http://www.spoj.com" rel="nofollow">http:&#x2F;&#x2F;www.spoj.com</a><p>[5] - <a href="http://uva.onlinejudge.org" rel="nofollow">http:&#x2F;&#x2F;uva.onlinejudge.org</a><p>[6] - <a href="http://hackerrank.com" rel="nofollow">http:&#x2F;&#x2F;hackerrank.com</a><p>[7] - <a href="http://www.topcoder.com" rel="nofollow">http:&#x2F;&#x2F;www.topcoder.com</a><p>[8] - <a href="http://www.amazon.com/dp/0201558025" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;dp&#x2F;0201558025</a>
评论 #8952755 未加载
laex超过 10 年前
You could check out the following resources:<p>1. Coursera Algorithms I for formal university-style learning. See <a href="https://www.coursera.org/course/algs4partI" rel="nofollow">https:&#x2F;&#x2F;www.coursera.org&#x2F;course&#x2F;algs4partI</a><p>2. Algomation.com for visualising algorithms. See <a href="http://www.algomation.com/" rel="nofollow">http:&#x2F;&#x2F;www.algomation.com&#x2F;</a><p>3. <a href="http://bigocheatsheet.com/" rel="nofollow">http:&#x2F;&#x2F;bigocheatsheet.com&#x2F;</a> for time&#x2F;space complexities for the most common data structures &amp; algorithms.<p>4. The book - Cracking the Coding Interview which goes through the questions that top companies like Google, Amazon, Microsoft ask during interviews. For their solutions, see <a href="https://github.com/gaylemcd/ctci" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;gaylemcd&#x2F;ctci</a><p>Hope that helps in some ways.
评论 #8952762 未加载
jimkri超过 10 年前
The best way that I learned algorithms was I looked at many different books about them. Here are some of the ones I used and you can contact me if you want any of them I have all the pdfs, I also want to say that I dont know if they are the best but they helped me to understand Algorithms and I really love them now, it is so interesting.<p>Intro to Algorithms, it was pretty tough at times but I really liked it. The Algorithm design manual. Algorithms in a nutshell.<p>I also was taking a course at Temple which helped but I really liked reading about them, than I thought a lot about the algorithm. I also have a lot of Data Structures books to go along with the Algorithm books too, let me know and they are all yours.
fandawg195超过 10 年前
MIT has some great youtube videos on Algos. and data structures - <a href="https://www.youtube.com/channel/UCEBb1b_L6zDS3xTUrIALZOw" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;channel&#x2F;UCEBb1b_L6zDS3xTUrIALZOw</a>