Home >Common Problem >Voss's definition of program is divided into several parts.
Voss’s definition of program is divided into two parts: algorithm and data structure. Algorithms centrally reflect the process of computer execution. Data structures are structural relationships between large amounts of data. Designing a good data structure can greatly simplify algorithms for the objects being processed.
The operating environment of this tutorial: Windows 7 system, Dell G3 computer.
N.Witrh, the founder of the PASCAL language, gave a concise and precise definition of program:
Algorithm+Data Structure=Program (Algorithm+Data Structure=Program)
The algorithm centrally reflects the process of computer execution. The data structure is the structural relationship between a large amount of data. According to the object being processed, designing the data structure can greatly simplify the algorithm. Algorithms and data structures are two important aspects of programming. Early programming languages were extremely weak in describing data structures, which aggravated algorithmic tasks. With the development of languages, data description capabilities have gradually increased, which is also an important sign of language development.
Algorithm refers to an accurate and complete description of a problem-solving solution. It is a series of clear instructions for solving problems. Algorithm represents a systematic method to describe the strategic mechanism for solving problems. In other words, it is possible to obtain the required output within a limited time for certain standardized inputs. If an algorithm is flawed or inappropriate for a problem, executing the algorithm will not solve the problem. Different algorithms may use different time, space, or efficiency to complete the same task. The quality of an algorithm can be measured by its space complexity and time complexity.
The instructions in an algorithm describe a computation that, when run, can start from an initial state and a (possibly empty) initial input, go through a limited and clearly defined series of states, and finally produce an output and Stop at a final state. The transition from one state to another is not necessarily deterministic. Some algorithms, including randomized algorithms, contain random inputs.
The concept of formal algorithms originated in part from attempts to solve Hilbert's decision problems and took shape in subsequent attempts to define efficient computability or efficient methods. These attempts included the recursive functions proposed by Kurt Gödel, Jacques Herbrand, and Stephen Cole Crane in 1930, 1934, and 1935 respectively, the lambda calculus proposed by Alonzo Church in 1936, Emil Leon Post's Formulation 1 in 1936 and Alan Turing's Turing Machine in 1937. Even today, there are often cases where intuitive ideas are difficult to define as formal algorithms.
Data structure (data structure) is a collection of data elements with structural characteristics. It studies the logical structure of data and the physical structure of data and the relationship between them, and defines this structure. Appropriate operations, design corresponding algorithms, and ensure that the new structure obtained after these operations still maintains the original structure type. In short, a data structure is a collection of data elements that have one or more specific relationships with each other, that is, a collection of data elements with a "structure". "Structure" refers to the relationship between data elements, which is divided into logical structure and storage structure.
The logical structure and physical structure of data are two closely related aspects of data structure. The same logical structure can correspond to different storage structures. The design of the algorithm depends on the logical structure of the data, and the implementation of the algorithm depends on the specified storage structure.
The research content of data structure is the basis for constructing complex software systems, and its core technology is decomposition and abstraction. Through decomposition, three levels of data can be divided; through abstraction, the specific content of the data elements is discarded, and the logical structure is obtained. Similarly, operations are defined by decomposing processing requirements into functions and discarding implementation details through abstraction. The combination of the above two aspects can transform the problem into a data structure. This is a process from concrete (that is, concrete problems) to abstract (that is, data structures). Then, by adding consideration to the implementation details, the storage structure and implementation operations are further obtained to complete the design task. This is a process from abstract (i.e. data structure) to concrete (i.e. specific implementation).
For more computer-related knowledge, please visit the FAQ column!
The above is the detailed content of Voss's definition of program is divided into several parts.. For more information, please follow other related articles on the PHP Chinese website!