[Rabbit King Gift Book No. 1] Is it necessary to distinguish between data structures and algorithms?

Is it necessary to distinguish between data structures and algorithms?

Data structure and algorithm are the basic courses of computer science. For beginners, it is often confusing: Is it necessary to distinguish between the two? Let's talk about it below.

First, understand the basic concepts of data structures and algorithms. A data structure is an abstract data type that defines how data is organized and stored so that problems can be solved efficiently. For example, arrays, linked lists, stacks, queues, trees, graphs, etc. are all common data structures. An algorithm, on the other hand, is a problem-solving method that specifies how to solve a problem through a series of well-defined steps. For example, sorting, searching, graph traversal, etc. are common algorithms.

It seems that data structure and algorithm are two different concepts, so is it necessary to distinguish them? The answer is not necessary. The reasons are as follows:

Data structure and algorithm is a discipline that must be closely combined with theory and practice. Some courses or books related to data structure and algorithm are just called "data structure" instead of "data structure and algorithm". Not much difference.

Moreover, there is no need and no strict distinction between data structures and algorithms. The two are in the relationship of "I am in you, and you are in me". Alternatively, it is not a bad idea to count data structures as a branch of algorithms. For example, the famous textbook "Introduction to Algorithms" contains a lot of data structures. If the problems involved in this book need to organize data in a more complex way, they are classified as data structures; otherwise, they are classified as algorithms.

It can be seen that the two are interdependent. The data structure is the basis of the algorithm, without a reasonable data structure, the realization of the algorithm will be limited. At the same time, the algorithm also depends on the data structure, and the correct choice of data structure can improve the efficiency of the algorithm. In practical applications, we usually need to choose appropriate data structures and algorithms according to specific problems.

Therefore, we recommend not to separate data structures from algorithms when studying computer science. Instead, they should be viewed as a whole, with an understanding of their interrelationships and dependencies. In this way, we can better grasp the core concepts of computer science and better solve practical problems.

Computer professionals need to master data structures and algorithms. Needless to say, non-computer professionals, whether they plan to change careers or have changed careers as programmers, should learn this course well. Even if you are not a programmer, if you often need to use programming to solve problems at work, taking this course is of great benefit.

Good book recommendation "Data Structure and Algorithm (Python Language Implementation)"

Here, I recommend a book "Data Structure and Algorithm (Python Language Implementation)". It is a comprehensive, detailed, and easy-to-understand data structure and algorithm textbook.
1

  • Friends who are interested in data structures and algorithms (Python language implementation)

  • You can search for this book in the online store to learn more

  • Available on all major platforms.

The author of the book examined many popular data structure and algorithm textbooks at home and abroad, and found that many textbooks use pseudocode or incomplete code to describe data structures and algorithms, and rarely give complete programs that can be run directly. Not only are there few sample problems that need to be solved by actual programming, but also the supporting exercises are basically to examine concepts, or only require to describe the process of solving problems, and almost never require to write a complete and completely correct program. Even if some textbooks have programming exercises, readers cannot judge whether the problem-solving programs they write are completely correct and have no hidden errors (bugs are commonly known as bugs in English, referring to errors that are not easy to find). Using such books to study, although you can cope with written examinations such as postgraduate entrance examinations, it is inevitable that you will be suspected of talking on paper. Once encountering the situation that the enterprise recruitment requires on-site code writing, or the re-examination of the postgraduate entrance examination requires writing code on the computer, it is often unable to do what it wants.

To sum it up, this book is actually [strongly practical]

At the same time, the author is a teacher at the School of Information Science and Technology of Peking University. He has taught courses such as "Data Structure and Algorithm", "Programming Practice", "Python Programming" and "ICPC College Student Programming Competition Practice" at Peking University for many years. The coach of the programming competition team, the person in charge of the propositions of the 13 ACM/ICPC International College Student Programming Contests in Asia, and made the propositions himself. Created Beijing Gladiator Software Technology Co., Ltd. with rich experience in software development and integrated it into teaching. The "Programming Internship" and "Programming and Algorithms" series of MOOC courses taught by him won the National Excellent Online Open Course.

In addition, it also has:

  1. The knowledge coverage is wider, especially the algorithm part.
    2

  2. The content and exercises in this book are clearly graded according to the difficulty level, so that both teachers and students who are computer majors or non-computer majors can get what they need from it.
    3

  3. In addition to a few particularly complex data structures, 95% of the data structures and algorithms in this book provide complete and runnable codes, a total of 115 copies, and almost all of these codes appear in specific examples.
    4

  4. The examples and programming exercises in this book can be submitted to the problem-solving program on OpenJudge (hereinafter referred to as OJ), the online program evaluation platform of Peking University. The platform contains more than 20,000 programming questions, and after the program is submitted, it will automatically judge whether it is right or wrong.
    56
    7

  5. The supporting electronic materials for this book are complete, including course handouts and more than 120 well-written program source codes with concise and beautiful styles.

  6. Online service exchange circle for exclusive readers of this book
    8

Fan Benefits | Comments Free Books

  • Now like and bookmark the comment "Life is too short, I use python"
  • Randomly select five friends in the comment area to give a free book
  • For more knowledge points, you can follow the column to learn~
  • Deadline: August 21, 2023
    9

Guess you like

Origin blog.csdn.net/m0_68111267/article/details/132321282