Correct learning posture of data structure and algorithm: 10 high-quality book list recommendations, downloadable

A reader diao asked me to recommend a book on data structures and algorithms. I think it is necessary to popularize it for everyone, because algorithms and data structures are so important-it seems that we humans cannot do without oxygen and green plants. Inseparable from carbon dioxide!

Please unscrupulously like it, search for [ Silent King Two ] on WeChat and follow this programmer who lived in Luoyang, the ancient capital of the Nine Dynasties.

This article   has been included on GitHub  github.com/itwanger , and there are also interview questions I prepared carefully for you.

In addition to diao, there is a girl who left a message to me in the background, and also recommended a wave of books on data structures and algorithms:

In view of this, I spent two days without eating or drinking, and finally sorted it out. In addition, I have also filled up Baidu Netdisk members and CSDN members (good download resources), and I also asked several experts in data structure and algorithms to verify whether my book list is trustworthy-they agree. The affirmation of my contribution.

Some readers may have such doubts, what is the use of data structures? Is learning algorithm necessary? Let me answer these two questions first.

In the computer field, such problems are usually dealt with:

1) If the data is stored in the computer.

2) What method is used to solve this problem.

Data is the synthesis of all the information that can be input into the computer. The structure refers to the relationship between data, and the data structure is to store the data and the relationship between them in the computer. How to realize storage? You need to choose the right algorithm to be more efficient.

Niklaus Wirth, the father of Pascal and the pioneer of structured programming, has a very famous book called " Algorithm + Data Structure = Program ". It can be seen that data structures and algorithms are really important to program design.

Data structures and algorithms, like operating systems and computer networks, seem to be very close to us, but they seem to be far away.

The reason is that if you don’t understand the data structure and algorithm, you will basically be unable to pass the interview, whether it is school recruitment or social recruitment. The reason for this is that in actual work, if the underlying business of operating system, search engine, network scheduling, etc. is not involved, if performance is not considered, it seems that it is not used at all. As long as the API encapsulated by the programming language is called properly , As long as the framework is used proficiently, the code can still be written at 66.

As a veteran who has been in the field of programming for more than ten years, I must solemnly remind everyone here.

If you are a college student, you must learn data structures and algorithms, otherwise you will regret it when you hit a wall in the interview, unless you plan to spend a lifetime in a small company.

If you take a postgraduate entrance examination, data structure is also a compulsory subject.

If you have already participated in the work and want to get rid of the CRUD label, you must also learn data structures and algorithms, otherwise you can only stay at the stage of assistant engineers and engineers and cannot go further.

In addition, mastering the data structure and algorithm will also help to read the source code and understand the design ideas behind it.

After understanding the importance of data structures and algorithms, I believe that readers and friends can't wait, gearing up, and eager to try, "Please tell us which books to read!"

The first book, "Dahua Data Structure"

The biggest feature of the book "Dahua Data Structure" is that it makes the theory very interesting and not boring. The biggest trouble in reading technical books is not that the book is classic or not, but whether you can read it in, and if you can read it, after learning it, this book is a good book. If you can't enter it, even a classic book, it won't help you learn at all, right?

There are mixed reviews of this book on the Internet, but the overall sales are still very good, and the author is also an old programmer. The C language used for the examples in the book.

The second book, "An Illustrated Algorithm"

Just like the subtitle of the book "Illustration of Algorithms" (code implemented in Python language), "Introduction to Algorithms as Interesting as Novels", the main theme is "graphics", easy to understand, and learning is much easier, yes Right?

Through the study of the two books "Dahua Data Structure" and "Algorithm Illustration", I believe that readers and friends will be able to get started with data structures and algorithms. If you want to learn more systematically and in-depth, please continue to read.

The third book, "Data Structure and Algorithm Analysis"

The black book, at a glance, you know it is a classic book, right? The author of the book "Data Structure and Algorithm Analysis" is also very attentive. The examples are not only in the Java version, but also in the C version and C++ version.

This solves the troubles of many readers and friends. I am not good at C. I just want to watch the Java version. Reader giao asked me to recommend some Java version books to him.

The fourth book, "Sword Finger Offer"

This book analyzes 80 typical programming interview questions. If you can understand the content in this book, it should not be a problem to deal with interviews in general companies.

To put it bluntly, learning algorithms and data structures will be very hard. Since so much effort has been devoted, our goal is very clear. To get a better job position, the book "Sword Finger Offer" will definitely help. we.

If you want to brush the questions, you can choose Niuke.com or Likou. If you are a Java programmer, just use Java to brush the questions.

Niuke Net:

https://www.nowcoder.com/ta/coding-interviews

Force button:

https://leetcode-cn.com/problemset/lcof/

After reading these four books carefully, if you can do them one by one, I believe that readers and friends can confidently say, "Data structure and algorithm, I have won!"

"There are a thousand Hamlet for a thousand readers." Different readers feel different when they read the same book. In the same way, when a reader reads different books on the same subject, the results will be very different.

Then I think it is necessary to recommend some other books for different readers to choose from.

The fifth book, "Interesting Learning Data Structure"

The explanation is more vivid, described in C++, suitable for basic beginners. The author Chen Xiaoyu is from Henan, and has written another book on algorithms, which is also suitable for beginners.

The sixth book, "Aha Algorithm"

An interesting introduction to algorithms, implemented in C language, no boring descriptions, no difficult formulas, everything is based on practical applications.

The seventh book, "Comic Algorithm: Xiao Hui's Algorithmic Journey"

In the form of comics, it describes the basic knowledge of algorithms and data structures, complex and changeable algorithm interview questions and practical application scenarios of algorithms. There are two editions, one for Python and one for Java.

The eighth book, "Code Interview Guide for Programmers: The Optimal Solution of Algorithms and Data Structure Problems for Famous IT Companies"

This is a "magic book" for programmer code interviews! The book summarizes the best solutions for various questions in the code interviews of famous IT companies, and provides related code implementations. Nearly 300 classic code interview questions that have actually appeared are selected. After "brushing" this book, you will be the "question king". "!

The same can be done on Niuke online:

https://www.nowcoder.com/ta/programmer-code-interview-guide

The ninth book, "Algorithm"

This is an algorithm book that is very suitable for self-study and as a teaching material. Its characteristics are: very comprehensive foundation, clear and easy-to-understand graphics, and low mathematical requirements. The code is implemented in Java. Although it is a big book, it is hard to understand.

The tenth book, "The Beauty of Data Structures and Algorithms"

Strictly speaking, this is not a book, it is a paid column launched by the platform at XX time (although it is very cryptic, but let's make money). I won’t say more about the reasons for the recommendation. Books are a choice if they are tired.

I recommend these ten books first, enough for everyone to study for a while. Finally, let me talk about the methods of learning data structures and algorithms. In short, there are two points:

1) Choose a suitable book

I have solved this problem for everyone. No matter which book you choose, the most important thing is to start. Don’t hesitate, it is already an advantage.

2) Programming realization and application

Understanding doesn’t mean you can use it, right? Only by doing it yourself and practicing repeatedly can you truly master it. You may not remember the first practice, then the second and third time, don't be impatient, give yourself some time and patience.

If you have some spare money in your hand, it is recommended to directly buy paper books to read; if you are really tight and the money is all about buying gifts for the object, the following Baidu link may relieve your financial pressure:

Download link: https://pan.baidu.com/s/1rB-CCjjpKPidOio7Ov_0YA Password: g5pl

Finally, I hope that these sincere suggestions from my brother can give you a little help! love peace and sleep!

Guess you like

Origin blog.csdn.net/qing_gee/article/details/108577084