ACM recommended bibliography, getting started

Source: Internet
Author: User

[Reprinted] ACM recommended bibliography, getting started (13:23:31) reprinted tags: Reprinted category: Technical Research

Http://blog.sina.com.cn/s/blog_46e156470100ogmu.html

ACM recommendation entry, Algorithm
Original article address: ACM recommended bibliography by ttcdld

Analysis and programming of practical algorithms)
Guide to the Youth International and National Informatics (Computer) Olympic competition-integrated mathematical algorithms and Programming
(Wu wenhu, Wang jiande, Tsinghua University Press, required to join the competition and combine mathematics)
Computer Algorithm Design and Analysis (edited by Wang Xiaodong, the best data structure teaching material)
Data Structure and algorithm (edited by Fu qingxiang and edited by Wang Xiaodong, the best algorithm teaching material I have ever seen)
Guide to the informatics Olympic competition-Analysis of competition questions 1997-1998 (Wu wenhu, Wang jiande, Tsinghua University Press, excellent content)
Computer Programming Skills (D. E. kruth, the most famous "sunflower Collection" in the algorithm book, Master's work, difficult)
Computational ry (Zhou Xiande, which comprehensively introduces computational ry)
Questions and Analysis of ACM International College Students' Program Design Competition (1) (by Wu wenhu, Tsinghua University Press)

There are:
Guide to the Youth International and National Informatics (Computer) Olympic competition-Graph Theory Algorithms and programming (Tsinghua University Press)
Guide to the informatics Olympic competition-Analysis of competition questions 1994-1995 (Tsinghua University Press)

1. Introduction to CLRS Algorithms
The Encyclopedia of algorithms only provides exercises in the first dozen chapters, which will benefit a lot.

2. Introduction to algorithms Algorithms
It's short and elegant. Bad news: Like An Introduction to algorithms, this book has no answers to exercises. Good news: Exercise is classic and difficult. You only need to spend a little time doing it yourself. Bad or bad news: I am writing the answer to the exercise. I have completed the first three chapters, and there are about two hundred questions left in nine chapters. If it succeeds, it will be released two months later. I have not read the Chinese version "Introduction to algorithms" and I don't know how to translate it. If you are interested, you should try to read the original version. In fact, it will not take much time to read the original version and the Chinese version, because most of the time is actually spent on exercises.

3. algorithm design
It's a classic book. I 've read it a long time ago. Unfortunately, I have forgotten everything except the classic one.

4. Construction and interpretation of computer programs of SiCp
There is no need to talk about the six-star book. Although it is not a book about algorithms, reading this book will help you better understand what recursion is. I have been emphasizing exercises. After reading this book, you should at least finish the exercises in the first four chapters. Otherwise, it is your regret and the author's regret.

5. Concrete mathematics specific mathematics
Some people say that the contents of this book should be clarified before reading taocp. If so, I am afraid I will not see taocp. I read more than half of the results, and many things do not have time to digest. If you are an undergraduate who has just entered college and has a lot of free time, you are lucky and happy to spend a few months to read this book, the gains are definitely higher than your expectations.

6. Introduction to the design and analysis of algorithms algorithm design and analysis basics
An interesting algorithm book has many interesting questions that cannot be found in other books. Reading this book will definitely open your eyes. It is a great job for home travel and interview installation.

7. The beauty of programming-Microsoft technical interview experience
Although it is an interview book, I would like to think of it as an algorithm sketch about problem-solving thinking if I break down the previous 10 pages. In the book, the author usually gives a common solution, and then optimizes and improves again and again. You can clearly see how the basic algorithm design ideas are applied to solve practical problems. If you already have the foundation of some algorithms, reading this book should improve your algorithm application capabilities. In addition, this book is lively and interesting, and is also suitable for beginners.

8. Fundamentals of algorithmics algorithm Basics
I borrowed it from the school library a long time ago. The content is not clear, and I only vaguely remember the dynamic planning chapter of this book. It should be a classic book. I personally think it is sufficient to share the so-called popular classics such as introduction to algorithms, but it seems that I am not mentioned much, maybe it is my ignorance.

9. How to solve it problems
The masterpiece of Bolia, one of the greatest mathematical thinkers in the 20th century, describes general solutions to problems: how to understand problems, how to change problems, how to solve problems, and how to get inspiration from problems, how to find a direction to the answer.

10. Programming interviews exposed programmer interview strategy
This is a pastime. I personally think it is more pure than a "XXX interview book" in China. At least there are some enlightening content, not just the interview questions.

11. Programming pearls programming Pearl
Learning Algorithms not only require heavyweight internal skills like alogrithms and introduction to algorithms, but also lightweight practices like programming beauty and programming Pearl. In the past few years, it was not very popular on the Internet, such as "giving you 1 billion numbers, finding the maximum N", or "giving you 1 billion numbers, finding the most frequently-seen number? After reading this book, you will know how to solve it. Compared with the beauty of programming, the examples in this book are slightly less skillful, but also more practical application value.

12. Competition in algorithm art and Informatics
If the introduction to algorithms is the power of jiuyang, then this is undoubtedly the theory of jiuyin. This book is designed for students who participate in program design competitions such as ACM ". This section describes some algorithms, data structures, number theory and computational ry that are commonly used in programming competitions. Although I do not engage in competitions, I have benefited a lot from this book.

13. An introduction to Probability Theory and Its Applications
I was prepared to read it. Now I found out how important probability theory is. Unfortunately, I didn't study it well when I was a bachelor. A student asked me a question not long ago. I had a program for him for a long time. He said: Isn't it a correlation coefficient here? Let's finish it in Excel! I'm dizzy. I really don't know that is the correlation coefficient.

14. Numerical Analysis
This is written by Richard L. Burden, J. Douglas faires.
Numerical Analysis discusses various numerical algorithms, such as interpolation, fitting, integration, solving of differential equations, solving of linear and nonlinear equations, etc. Prepare for details.

15. taocp computer programming Art
In the legend of taocp, many people are said and few people are seen. The four volumes of taocp can be referred to as the yijinjing in the algorithm library or the skill of Shaolin. The world martial arts, do Shaolin, the world algorithm, do taocp also. By the way, you can open an algorithm book and see his references. I read only the chapter in the fourth volume. The first three volumes have not been dared to read yet. They are still put on hold in the reading schedule for an indefinite period of time.

One expert gave me the following suggestions:

Generally, you do not need to debug programs with less than 50 lines, or debug programs with less than 100 lines within two minutes. ACM is mainly used for algorithm testing.
The main time is spent on thinking about algorithms, not writing programs and debugging.
Below is a plan for you to practice:

Stage 1:
Practice common classic algorithms. Each of the following algorithms gives me 10 to 20 times, while streamlining the code,
Because it is too common, you don't have to think about it when writing. You can even turn off the monitor within 10-15 minutes.
Come out.
1. Transient (Floyd, dijstra, bellmanford)
2. minimal spanning tree (write a prim first, and kruscal should use and query the set, which is hard to write)
3. Large numbers (High Precision) addition, subtraction, multiplication, and Division
4. Binary Search. (the code can be less than five lines)
5. Perform cross multiplication, determine the intersection of line segments, and then write a convex hull.
6. BFs, DFS, and skilled hash tables (be familiar, flexible, and concise)
7. mathematical formulas include: Moving and Division (within two rows), line segment intersection, and multi-angle area.
8. There are many tips for calling the system qsort.
9. Conversion between any binary systems

Stage 2:
Exercise is a bit more complex, but it is also a common algorithm.
For example:
1. Bipartite Graph Matching (Hungary), minimum path Overwrite
2. network flow, minimum charge flow.
3. Line Segment tree.
4. Check the set.
5. Familiar with various typical dynamic planning models: LCs, longest incrementing substrings, triangle partitioning, and memory DP
6. classification algorithms. Game tree and binary method.
7. The largest group and the largest independent set.
8. points are located within the polygon.
9. Differential constraint system.
10. Bidirectional breadth search, A * algorithm, minimum dissipation first.

Stage 3:
The first two stages are the foundation, and the third stage is the exercise. In the competition, you can quickly create models and think about new algorithms.
. This requires more comprehensive questions at ordinary times.
1. Take a look at the papers on oibh (about a few hundred articles, I only read a little bit, huh, huh ).
2. Scan the problems on zoj at ordinary times. Don't always do things you don't need to think about.
Do:-P)
3. participate in online competitions, feel the competition atmosphere, and evaluate your strength.
4. If you don't need a question, even if you ask someone, you can use a better algorithm.
5. Remember the questions you have done.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.