Introduction to algorithms 01-what is an algorithm (university education associated with algorithms)

Source: Internet
Author: User

What is algorithm (university education associated with algorithms)
I have been reading the introduction to algorithms for a few days. I have read the first three chapters and watched them. I have become more and more open-minded in my mind. This book should be the most suitable one at the beginning of my junior year, at that time, the basic course was completed and the professional course was about to begin. The introduction to algorithms was a link in software.
So what is an algorithm?

Definition:A set of feasible, definite, and poor rules for model analysis.
Baidu Encyclopedia:An algorithm can be understood as a complete solution step consisting of basic operations and prescribed operation sequence. It can also be seen as a finite and definite computing sequence designed as required, and such steps and sequences can solve a class of problems.
Features:

1. Finiteness)
Poor algorithms mean that the algorithms must be terminated after a limited number of steps are executed;
2. Definiteness)
Each step of an algorithm must have a definite definition;
3. Input)
An algorithm has 0 or more inputs to characterize the initial state of an operation object. The so-called 0 inputs indicate that the algorithm determines the initial conditions;
4. Output)
An algorithm has one or more outputs to reflect the results of input data processing. Algorithms without output are meaningless;
5. Feasibility)
Any computing steps executed in an algorithm can be divided into basic executable operation steps, that is, each computing step can be completed within a limited time (also called validity ).
Algorithm evaluation:

1. Time Complexity
The time complexity of an algorithm is the computing workload required to execute the algorithm. Generally, a computer algorithm is a function f (n) of the problem scale N. Therefore, the time complexity of the algorithm is also recorded.
T (n) = random (f (n ))
Therefore, the larger the problem scale N, the growth rate of Algorithm Execution time is positively related to the growth rate of F (n), which is called asymptotic time complexity ).
2. space complexity
The space complexity of an algorithm refers to the memory space required by the algorithm. The computation and Representation Methods are similar to the time complexity. They are generally expressed by the approximation of the complexity. Compared with time complexity, the analysis of space complexity is much simpler.
3. correctness
Correctness of an algorithm is the most important criterion for evaluating the merits and demerits of an algorithm.
4. Readability
The readability of an algorithm refers to the ease of reading an algorithm.
5. robustness
Robustness refers to the ability of an algorithm to respond to and process unreasonable data input. It is also called fault tolerance.
Thought of by algorithm Learning

The above are relatively standard definitions, but when I learned it, I found the connection between the courses I learned. Although I had such connections before, they were not so well-developed, this time, I spent a day specially dredging all the courses. I am a senior Computer Science and Technology student. Basically, all the courses are similar, so I will explain it in a simple and easy-to-understand course, so that it will be too late for me to regret it again. I feel that the description in the language is unclear. I can draw a picture directly, which is a little more intuitive.

If you really understand the figure, you will find that our university courses are still very standard, but the points are too detailed. Sometimes, we cannot find any computer-related connection, in general, the computer is the 01 code. Whether it is a display or a memory, the hardware design is nothing more than 0 and 1, yes or no. On this basis, A series of encapsulated functional hardware is derived, and then encapsulated into hardware devices with larger functions and software interfaces. Compile the most basic C language through the assembly language, that is, the most advanced hardware language. Of course, for developers, the compilation principle is indispensable and the C language is further encapsulated and combined with the data structure, with the operating system, we should all know that the operating systems of servers with excellent stability in the world are generally written in C language. The C language is efficient and predictable. With the operating system at this layer, the upper layer is the communication between computers and the data storage related to computers (databases ), then we have a series of top-level applications.

In fact, I regret it now. In my freshman year, although I learned a lot about high numbers, linear, discrete, and probability theory, I did not fully understand it, I cannot use it in my mind. This makes me very worried. At the same time, I found that my subjects, except for politics, mathematics, English, and professional courses, combine these knowledge, at a moment of reading a book, I thought that I should take an postgraduate entrance exam. In this way, I will integrate my knowledge. However, I thought it was my own mistake. I didn't have a deep understanding. If I had a deep understanding of my freshman year, I wouldn't regret it now. What I feel now is, I especially want to learn mathematics-related and professional courses again (I will not speak English and read the basics of foreign materials). However, I will be a senior, I am about to look for a job. I have no time. If I have a postgraduate entrance exam, I am not a student who has been sitting and reading for more than four hours. But I can, I can leave my seat unchanged for eight consecutive hours. This is probably the interest. However, a big problem is that computers are developed on the basis of mathematics, and there will be no major achievements without thinking or computing. What is this? It became the relationship between spear and shield. Without knowing it, I remembered the knowledge I learned in discrete mathematics, which is especially appropriate for my current situation.

By the way, when I was a freshman year, I had heard many senior students say that if I took the postgraduate entrance exam, I would study the basic knowledge well. If I didn't take the postgraduate entrance exam, I would be able to take the exam, if you want to get a scholarship, you can take a good test, and the university courses will be the same. Here I really want to say: Shit theory. The school was not a waste of effort. Why did I give us some useless professional courses? At that time, I used to write a second course, and I actually believed it. I really regret it now. I can only blame myself for not trying to solve it. However, I don't want Chinese students to be misled any more. All the courses in the university are courses that combine theory and practice. There may be fewer practices, but the theory is indeed very important, this is undeniable. When you have a good foundation, improving your practical ability is a matter of time. Therefore, every university course needs to be well studied (excluding a certain party course ), even history must be well studied. Reading history can make people wise and teach you how to behave. Of course, history is not limited to history, it can be a biography of someone, and so on. Well, in today's society, what technologies and capabilities are secondary. talents are the main force. Never put the horse upside down.

I regret it. I can only pay more attention to the flexible combination and Application of theoretical knowledge (mathematical knowledge and professional knowledge) in my future studies. It is not easy to learn it. Computer is an endless path, just like the universe,The more you explore, the less you know.. If this is the case, I want to know little about it.

End with one sentence:Learn the mathematical physics and chemistry of the calendar, not afraid to go all over the world.

Related Article

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.