### Selected Readings on Algorithm Design

Algorithm Design is a paperback book by JonKleinberg/ÉvaTardos, published by People’s Posts and Telecommunications Publishing House, priced at $119.00, with 503 pages, and carefully compiled from the web.

“Algorithm Design” read (1): algorithms

A bit like an introduction to the book, no algorithms specific implementation of the code, after each part of the knowledge, the book will have some examples and exercises, suitable for computer algorithms want to carry out the whole, in-depth, understanding of the people, the algorithms contained in the book is a lot of very full, relatively deep ( This book contains a lot of algorithms, very complete, relatively deep (for a rookie like me). This book contains a lot of algorithms, very complete, relatively deep (for rookies like me). The illustrations in the book are very clear and comfortable to read. The whole book is still relatively large and thick, not too convenient to bring up, suitable for pad monitor.

“Algorithm Design” read (2): Algorithm Design

First look at the author, JonKleinberg is the U.S. National Academy of Sciences (NAS), the U.S. National Academy of Engineering (NAE), the U.S. Academy of the Humanities and Sciences (AAAS) three material members, in the field of computer science is the In the field of computer science, he is a “legendary” figure. He is also a recipient of the “Naiveliner Prize” awarded by the International Congress of Mathematicians, which was established by the Congress of Mathematicians in order to recognize important mathematical contributions to the information sciences. I’ve read the English version, and I’m looking forward to the new Chinese version

Algorithm Design: The Most Comprehensive Exercises

Not only is this book full of details, but the exercises with solutions at the end of each chapter are a great addition to the book, and the answers to the problems are either the last solution or a simple analysis of the problem. Answers to almost every point in the book, making it easier to understand the meaning.

The study of algorithms brought in this book starts with problems arising in various computing applications, builds on the understanding of algorithmic design techniques, and culminates in effective solutions to these problems.

Algorithm Design is written by scientists with extensive experience in algorithms, and Algorithm Design has become a textbook for courses at many colleges and universities, including the University of Washington.

AlgorithmDesign has been a bestseller for 15 years.

There are a huge number of algorithm books out there, so how should you pick one? The algorithm book recommended by Asynchrony today has a high rating of 4.5 stars in Americana, winning readers’ recognition. What is more worth mentioning is that this book is also the algorithmic textbook chosen by a number of well-known foreign colleges and universities. This book is “Algorithm Design”, I can’t say that all programmers have read this book, but it is definitely a good classic book for novice beginners as an algorithmic textbook in the university. From the title of the book, it seems that algorithms and ‘design’ are combined together, so many people think that this may not be an entry-level algorithm book. But in fact, this book covers a wealth of knowledge, can be used as a beginner’s first algorithm book, can also be used as a master programmer to consolidate the basic textbook. Why is it combined with “design”? It starts with the philosophy of the two authors of the book about algorithms.

1. Algorithm design techniques in the eyes of scientists

The authors of Algorithm Design are Jon Kleinberg (hereinafter referred to as Jon) from the United States, and Eva Tardos (hereinafter referred to as Eva) from Hungary. Regarding algorithmic problems, they make the point that “Algorithmic problems form the core of computer science, but they seldom take the form of neat, precise mathematical problems. Instead, they tend to have a lot of messy, application-specific details that are entangled by something vital and something irrelevant.” Thus they argue that algorithmic problems consist of two basic parts: getting the mathematically neat core of the problem, and determining the appropriate algorithmic design techniques based on the problem structure. These two parts interact with each other: the more comfortable one is in applying the various possible design techniques, the more one can also recognize neat formal descriptions in the world’s chaotic problems. At their most effective, algorithmic ideas not only provide solutions to appropriate problems, but they constitute a language that allows programmers learning algorithms to express basic problems clearly. So Jon and Eva decided to bring design computation to the study of algorithms. They were well aware that the design process generally begins with problems that arise in a variety of computational applications, builds on an understanding of algorithmic design techniques, and culminates in effective solutions to those problems. So they try to explore the role of algorithmic ideas in computer science and relate these ideas to some precisely formulated problems. They design and analyze algorithms for these “problems”. Based on this research, the book Algorithm Design was born. Jon and Eva set the goal of the book as how to identify clear descriptions of algorithmic problems in complex problems in different computational domains, and to give advice on how to design effective algorithms for the resulting problems. To this end, they have reorganized their research results, from the simplest initial methods even to the final solutions, in order to help people better understand complex algorithms. Readers of this book will get the feeling that it is not describing the most direct path from problem statement to algorithm, but it can be a direct reflection of the way programmers really think about these problems.

2. The Scientist Behind the Classics

Jon Kleinberg

Jon is an American computer scientist who received his Ph.D. from the Massachusetts Institute of Technology in 1996, and is currently a Cornell University Professor of Computer Science. Since 1995, Jon has done research at the IBM Research Institute, focusing on the mathematical analysis and modeling of combinatorial structures of networks and information. Jon has received research grants from the Packard Foundation and the Sloan Foundation, and his research focuses on algorithms, especially those related to network structure and information, and their applications to information science, optimization, data mining, and computational biology. His work on network analysis using information centers and authoritative information has been instrumental in forming the basis for the latest generation of Internet search engines. In the field of computing, Jon has received numerous awards. The National Science Foundation Career Award, the Office of Naval Research Young Investigator Award, the IBM Distinguished Innovation Award, and other prestigious awards have gone to him. Another author, Eva, is also a professor of computer science at Cornell University and a mathematician.

ÉvaTardos

In 1981, Eva pursued her PhD at Loránd University in Hungary under the guidance of her mentor András Frank. In 2006, Eva became the Dean of the Department of Computer Science at Cornell University, and in 2007, Eva was elected a Fellow of the National Academy of Engineering, the College of Arts and Sciences, and the American Philosophical Society. She is also an ACM Fellow. Eva is a recipient of the Fulkerson Prize, the George B. Danziger Prize, the Gödel Prize, and the EATCS Prize. In 2019, Eva was also awarded the IEEE John von Neumann Medal. Eva’s research interests focus on the design and analysis of algorithms for graph and network problems. She is known for her work on network flow algorithms and approximation algorithms for network problems. This includes algorithmic game theory, an emerging field concerned with designing systems and algorithms for selfish users.

3. A Different Kind of Algorithm Book

This book is a classic textbook on algorithm design and analysis. The two authors organize themselves around algorithm design, combining the theory of algorithms with real-world problems, and analyzing each algorithmic technique with multiple typical examples in a highly inspiring way. A significant amount of the book is devoted to the formal description of an algorithmic problem, as well as to the design and analysis of algorithms for that problem. The advantage of this kind of writing is that appropriate design techniques can be used to develop algorithms, prove their properties and analyze their efficiency. In addition to the broad coverage, the best feature of this book is the more than 200 exciting exercises, as well as the PSPACE problem, parametric complexity, and much more.

Herein lies the biggest difference between Algorithm Design and other algorithm books. It was part of Jon and Eva’s teaching program at Cornell, and almost all of the problems were developed in out-of-class assignments or examined in class quizzes. They viewed the problems as an important part of the book and made the structure of the problem set consistent with their overall approach to the content. Much of it contains detailed textual descriptions of problems that appear in computer science application areas or elsewhere. Some of the problems are also practices of the problems they discuss in the textbook:establishing the necessary notation and formalisms, designing an algorithm, and then analyzing that algorithm and proving that it is correct. To help with these problems, they have included a section in each chapter called “Exercises with Solutions” that discusses one or more problems and describes how to formalize a solution. As a result, the discussion devoted to each exercise with a solution takes much longer than simply writing the complete, correct solution. Indeed, as with the rest of the book, the discussions in these sections should be viewed as attempts to provide an understanding of the larger process by which this type of problem can be considered, and ultimately a detailed description of the exact solution. It is worth noting that since this book is widely used in foreign universities, Jon and Eva’s advice on learning is more oriented towards college students. They suggest that beginners reading this book should have taken a basic programming-based computer science course and have written programs that implement basic algorithms, manipulated discrete structures (trees and graphs), and applied basic data structures (such as arrays, lists, queues, and stacks).

Along these lines, they have utilized many problems in computer science and related fields to develop basic algorithm design techniques. These include applications for systems and networks (caching, switching, inter-domain routing on the Internet), artificial intelligence (planning, gaming, Hopfield networks), computer vision (image segmentation), data mining (change-point detection, clustering), operations research (route scheduling), and computational biology (sequence comparison, RNA secondary structure).

Algorithm Design, co-authored by Jon and Eva, is organized around algorithm design, deconstructing and dissecting typical examples of several algorithmic techniques and making algorithms relevant to real-world problems. Suffice it to say, this is truly a classic algorithm book that can’t be beat!

Sunday when I went to the library to borrow this book, when borrowing did not carefully just see the title of the title is more sensible interest, so I borrowed. I spent about 4 hours reading it yesterday.

This book uses pictures to show the fundamentals of 7 data structures and 26 basic algorithms in the form of step-by-step explanations

Fundamentals of Data Structures:

Fundamentals of Basic Algorithms:

Author: Ishida Hoho Teru Miyazaki Shuji

We have seen algorithmic books before but each time I felt that it was not intuitively understandable. Feelings are not very intuitive understanding, after reading this book for the basic principles of data structures and the basic principles of algorithms, have a very intuitive understanding.

For people who just contacted the algorithm, must seriously finish the 7 data structure fundamentals: (chained tables, arrays, stacks, queues, hash tables, heaps, binary lookup tree) can read more times, really to understand.

Algorithm part: subsumption sorting, fast sorting, binary search, graph search, k-means algorithm is worth reading

This book is mainly to help readers deepen the understanding of the principles of data structure and algorithm execution process in a step-by-step diagram, there is no boring theories and complex formulas, such as as a primer for the introduction to the book is a very good algorithmic primer,.

### Algorithms and Algorithm Analysis of Data Structures[2]

Algorithms and data structures are complementary to each other, the algorithms for solving a particular type of problem can be selected from a variety of data structures, and the choice of the appropriate or not directly affects the efficiency of the algorithm, and vice versa, the advantages and disadvantages of a data structure by the implementation of a variety of algorithms

To design a good algorithm, it is usually necessary to consider the following Requirements

(1) the correct algorithm should meet the pre-specified functionality and performance requirements

(2) readable an algorithm should be clear and hierarchical, simple and easy to read and understand

(3) robust when the input of illegal data should be able to deal with it appropriately does not give rise to serious consequences

(4) efficient and effective use of storage space and a high degree of time-efficiency

(4) the efficient use of storage space and time-efficiency

The design of a good algorithm usually takes into account the following requirements Algorithm description

Algorithms can be described in a variety of ways

The simplest way is to use natural language to describe an algorithm The advantage of using natural language to describe an algorithm is that it is simple and easy for people to read the algorithm The disadvantage of using natural language is that it is not rigorous enough

You can use algorithmic descriptors such as the program flowchart, the NS diagram and other algorithmic descriptors which feature a simple and concise process

The algorithmic descriptor can be used in the following ways The algorithms described in these two ways cannot be directly executed on a computer, and there is a programming problem in converting them into executable programs

The algorithms can be described directly in a programming language, but it is not easy to use a programming language directly, and it is not very intuitive, and often you need to resort to annotations in order to make it understandable

The algorithms can be described by using some kind of programing language. lishixin/Article/program/sjjg/201311/23944

### Knowledge of data structures and algorithms?

For most programmers, when learning techniques such as data analysis need to first understand the knowledge points about data structures as well as algorithms, below we will give you a brief introduction to what is a data structure? What are algorithms?

Most data structures and algorithms textbooks give a clear definition of these two concepts at the beginning. However, these definitions are very abstract and do not substantially help in understanding these two concepts, but instead will let you fall into the misunderstanding of sticking to the definitions. After all, we are studying now, not for the exam, so it is of little use to memorize the concepts as well as not being able to use them.

While we say that there is no need to dig deep into strict definitions, this is not the same as not needing to understand the concepts. Below I’ll help you understand the concepts of data structures and algorithms at both the broad and narrow levels.

In a broad sense, a data structure is a set of structures for storing data. An algorithm is a set of methods for manipulating data.

Surely you’ve seen libraries storing books, right? In order to make it easier to find, librarians usually “store” books in different categories. The books are numbered according to a certain pattern, which is the storage structure of this “data”.

How do we find a book? There are many ways, of course, you can find one by one, you can also be based on the number of the book category, is the humanities, or science, computers, to locate the bookshelf, and then in turn to find. In general terms, all of these finding methods are algorithms.

From the narrow sense, that is, our column to talk about, refers to certain well-known data structures and algorithms, such as queues, stacks, heaps, binary lookups, dynamic programming and so on. These are the crystallization of the wisdom of previous generations, and we can use them directly. These data structures and algorithms we are going to talk about are abstracted from many practical operational scenarios by previous generations, and after very much seeking and testing, they can efficiently help us to solve a lot of practical development problems.

What is the relationship between data structures and algorithms? Why do most books put them together?

This is because data structures and algorithms go hand in hand. Data structures serve algorithms, and algorithms work on top of specific data structures. Therefore, we can’t talk about algorithms in isolation from data structures, nor can we talk about data structures in isolation from algorithms.

For example, because the array has the characteristics of random access, the commonly used binary search algorithm needs to use the array to store data. But if IT training chooses a data structure like a chained table, the binary lookup algorithm won’t work because chained tables don’t support random access.

The data structure is static; it is just a way of organizing data. A data structure that exists in isolation is useless if you don’t manipulate and build algorithms on top of it.

### Data Structures and Algorithms for CollegeThese 10 Books to Collect

Book RecommendationsRelying on These 10 Classic BooksData Structures and Algorithms

“The Big Talk Data Structures”

The best thing about the book “Big Talk Data Structures” is that it makes the theory interesting and not boring. The biggest trouble in reading technical books is not whether the book is classic or not, but whether it can be seen into, can be seen into the learned, this book is a good book. If you can’t get into it, even if it’s a classic book, it’s not going to help you learn, is it?

Algorithmic Illustrations

As the subtitle of this book says, “An introduction to algorithms that is as interesting as a novel,” the main theme is “Illustrations that are easy to understand, so it’s much easier to learn, isn’t it?

Through the “Big Talk Data Structures” and “Algorithms Illustrated” two books, I believe that readers will be able to get started with data structures and algorithms. If you still want to learn more systematically and deeply, please read on.

Analysis of Data Structures and Algorithms

Black book, at a glance, you know it’s a classic book, right?

Data Structures and Algorithm Analysis

The author of this book also uses examples of not only the Java version, but also the C version and the C++ version

The Sword to the Offer

This book analyzes 80 typical programming interviews, and if you can understand the content of this book, you shouldn’t have any problem with the interviews of the average company.

To put it bluntly, learning algorithms and data structures will be very hard, then since we have put in so much effort, our purpose is very clear, to get a better job, this book will be able to help us

“Interesting Data Structures”

The explanation is more vivid, described in C++, and is suitable for beginners who have a general foundation. The author Chen Xiaoyu is from Henan, also wrote another book on algorithms, also very suitable for beginners

“Aha Algorithm”

An interesting algorithmic introduction to the book, the C language implementation, there is no boring description, there is no difficult to understand the formula, all the practical applications as a starting point.

“Manga Algorithm: Little Grey’s Algorithmic Journey”

Tells the basics of algorithm and data structure in the form of manga complex and varied algorithmic interview questions and algorithmic practical application scenarios. There are two editions, one for Python and one for Java

Programmer’s Guide to Code Interviews

This is a programmer’s guide to code interviews! The book summarizes the optimal solution to the various topics of the code interviews of famous IT companies, and provides the relevant code implementation, selecting nearly 300 real classic code interview questions, “brush” after the book, is the “king of the questions”!

“Algorithms”

This is a very suitable for self-study and as a textbook algorithms book features: the basis of a very comprehensive, clear and easy to understand illustrations, mathematical requirements of the low code is realized through Java, although it is a book of books, but difficult to understand the words nevertheless.

The Beauty of Data Structures and Algorithms

The most common and important data structures and algorithms are introduced. Each of them is introduced in detail from “origin”, “characteristics”, “suitable for solving problems”, “practical application scenarios”, and is accompanied by clear and easy-to-understand hand-drawn diagrams. Hand-drawn illustrations, from shallow to deep to tell: but also timely summary of some practical “treasure” to teach you to solve the real development problems of the ideas and methods