Recursive algorithm: description, analysis, features and examples

Date:

2018-03-24 07:50:27

Views:

640

Rating:

1Like 0Dislike

Share:

Table of contents:

The current understanding recursion: definition, functionality, and access it from the outside and from that of functionality. It is believed that recursion was born mathematicians: the factorial, infinite series, fractals, continued fractions... However, recursion can be found everywhere. Objective natural laws “believe” recursion as its core algorithm and a form of expression (of existence) is not so much of material objects, how much the basic movement algorithm.

recursive algorithm

People of different professions in various fields of science and technology using the recursive algorithm f (x), where “x ~/= f (x)”. A function that calls itself, - a strong solution, but the formation and understanding of this decision, in most cases a very difficult task.

In ancient times used recursion to increase court space. Through a system aimed at each other mirrors, you can create stunning surround effects. But is it easy to figure out how to adjust the mirrors? And even more difficult to determine where a point in space, reflected through multiple mirrors.

Recursion, recursive algorithms: meaning and syntax

The Problem, which is formulated by repetition of a sequence of operations can be solved recursively. A simple algorithm (computation of quadratic equations, the script content of the web page information, reads the file transfer message...) does not require the use of recursion.

The Main differences between an algorithm that allows recursive solution:

  • There is an algorithm that needs to be run several times;
  • The algorithm needs to be data that changes every time;
  • The algorithm does not have to change each and every time;
  • There is final condition: the algorithm is recursive, which is not infinite.

In the General case, one can argue that a one-time performance - a prerequisite for the lack of reason for recursion. It is also impossible to require that a mandatory final conditions: infinite recursion has its own scope of application.

Recommended

"Knowledge is light and ignorance is darkness": the value, meaning and alternatives

There are some sayings that would seem to need no explanation, such as “teaching & ndash; light and ignorance – darkness”. But some still do not understand their meaning. But not only for such people is written by our article. I...

What was invented by Mendeleev for the army. The history and fate of the invention

What was invented by Mendeleev for the army. The history and fate of the invention

D. I. Mendeleev was a brilliant Russian scientist-polymath, who made many important discoveries in various fields of science and technology. Many people know that he is the author of “Fundamentals of chemistry" and the periodic law of chem...

The origin of the Slavs. The influence of different cultures

The origin of the Slavs. The influence of different cultures

Slavs (under this name), according to some researchers, appeared in the story only in 6 century ad. However, the language of nationality bears the archaic features of the Indo-European community. This, in turn, suggests that the origin of the Slavs h...

The Algorithm is recursive: when the sequence of operations is executed repeatedly, data that changes each time and each time giving a new result.

Recursion Formula

The Mathematical understanding of recursion and its counterpart in programming is great. Mathematics, though distinctive programming, but programming is math is a much higher order.

a recursive algorithm f

A Well - written algorithm as a mirror of the intellect of its author. The General formula of recursion in programming ‘f (x)” where “x ~/= f (x)" has at least two options of interpretation. Here “~” - the similarity or lack of result, and “=” - the presence of the function result.

First variant: the dynamics of the data.

  • Function ‘f(x)” is a recursive algorithm and is not changeable;
  • “x” and the result of ‘f(x)" - each time have a new value, the result of ‘f(x)" is the new “x” of this function.

The Second option: dynamics code.

  • Function ‘f(x)" has multiple algorithms, lookup (parsing) data;
  • Data analysis - one part of the code and the implementation of recursive algorithms performing the desired action - the second part of the code;
  • The result of ‘f(x)”.

No result is a normal phenomenon. Programming is not mathematics, this result may not necessarily be apparent. The function is performed recursively, might just do the parsing of the sites and fill the database or create copies of objects according to the incoming input stream.

Data and recursion

Programming recursive algorithms are not calculating the factorial in which the function receives each time this great unit in a smaller or larger side - variant of implementation depends on the preference of the developer.

It is Not important how to calculate the factorial of “8!”, moving from 0, 1, 2, ... or Vice versa 8, 7, 6 ... is Similar to the calculation of the mathematical sequence, a fractal, or infinite series is written simple mathematical formula and, therefore, the algorithm that strictly follows this formula.

Handling information is a "math" are completely different. Recursive functions and algorithms here operate on letters, words, phrases, sentences and paragraphs. Each level uses the previous one.

The Input stream data is analyzed on a wide range of conditions, but the analysis process is in General recursive. It makes no sense to write unique algorithms for all variants of the input stream. Must be a single functionality. Here the recursive algorithms examples of how to create output stream, adequate input. This is not the result supplied to the input of a recursive algorithm, but it is desirable and necessary decision.

Abstraction, recursion, and OOP

Object-oriented programming (OOP) and recursion are fundamentally different entities, but they perfectly complement each other. Abstraction is irrelevant to the recursion, but through the prism of the PLO enables the implementation of context-sensitive recursion.

For Example, there is an analysis of the information and Highlighted Separate letters, words, phrases, sentences, and paragraphs. Obviously, the developer will provide for the instantiation of objects of these five types and will offer The solution of the recursive algorithms at each level.

programming recursive algorithms

Meanwhile, if the letters “there is no sense to search for meaning”, at the level of words there is semantics. You can divide the words into verbs, nouns, adverbs, prepositions ... you Can go ahead and determine the case.

On phrase level semantics of complemented with punctuation and logic combinations of words. At sentence level reveals a more advanced level of semantics and a paragraph can be regarded as a complete thought.

Object-oriented design determines the inheritance of properties and methods and suggests to start the object hierarchy with the creation of completely abstract ancestor. At the same time, without a doubt, the analysis of each descendant will have a recursive character and are not too different at the technical level for many items (letters, words, phrases, and sentences). The paragraphs are complete thoughts that can stand out from this list, but not the essence.

It is Important that the bulk of the algorithm can be formulated at the level of abstract ancestor, refining it at each descendant data and methods called abstract level. In this context, abstraction opens new horizons for recursion.

Historical features of OOP

The PLO came into the world programs twice, although some experts can highlight the emergence of cloud technologies and modern ideas about objects and classes, as a new milestone in the development of it technologies.

The Terms “object” and “object” in the modern context of the PLO, considered the 50th and 60th years of the last century, but to associate them with the 1965 and the emergence of languages Simula, Lisp, Algol, Smalltalk.

In those days, programming is not distinguished by any particular development could not adequately respond to the revolutionary concept. To the struggle of ideas and styles of programming (C/C++ and Pascal in General) was still far away, but the databases still forming conceptual.

recursion recursive algorithms

In the late 80s and early 90s appeared in Pascal objects and remembered everything about classes in C/C++ this marked a new round of interest in the PLO and then of the tools, especially programming languages have become not only to support object-oriented ideas, but also to develop them accordingly.

Of Course, if early recursive algorithms were a simple function used in a common program code, but now the recursion could become part of the properties of the object (class) that, in the context of inheritance provided interesting possibilities.

A Feature of modern OOP

The Development of the PLO initially declared objects (classes) as a set of data and properties (methods). Actually it was about data having syntax and meaning. But then failed to present the PLO as a tool to control real objects.

recursive functions and algorithms

The PLO has become a tool of control objects "computer of nature”. Script, button, menu item, menu bar, the tag in the browser window is an object. But not the machine, food, word, or sentence. Real objects the object-oriented programming, and computer tools acquired new incarnation.

Due to the differences of the popular programming languages there are many dialects of the PLO. On the semantics, they are almost equivalent, and their focus on the instrumental field, not of the application makes it possible to make the description of real objects beyond the algorithms and to ensure their cross-platform and cross-language “existence”.

The Stacks and the mechanisms for calling functions

The Mechanisms for calling functions (procedures, algorithms) require transmission of data (parameters), returning the result and storing the address of the operator who needs to get control after the function (procedure).

recursive algorithms examples

Usually used for this purpose is the stack, although the programming languages or the software developer may provide a variety of options for the transfer of control. Modern programming assumes that a function name may not be the only option: it can be generated during the execution of the algorithm. The algorithm can also be created during the execution of the other algorithm.

The Concept of recursive algorithms, when their names and bodies can be determined at the time of formation of the task (select the desired algorithm) expands recursively not only on how to do something, but who exactly is supposed to do. The choice of algorithm for its “meaningful” name - promising, but creates difficulties.

Recursively on the set of functions

Not to say that the algorithm is recursive when it calls itself only. Programming is not a dogma, and the concept of recursively is not an exclusive requirement to call yourself from the body's own algorithm.

Practical applications do not always give a clean solution. Often the source data should be prepared, and the result of the recursive call should be viewed in the context of the whole task (algorithm) in General.

In fact, not only prior to calling a recursive function, but after its completion, may or must be caused by another program. If the call no problems: recursive function A() calls function B () that does something and calls A(), then immediately there is a problem with the returncontrol. After a recursive call, the function A() needs to manage to re-trigger B(), which again will cause. Return control as follows in order in the stack back to B () is the wrong decision.

The Programmer is not restricted in the choice of parameters and furnish the names of the functions. In other words, the ideal solution is to pass in A() the name B() and let alone A() makes a call to B(). In this embodiment, there will be problems with the return control, and the implementation of the recursive algorithm will be more transparent.

Understanding recursion level

The Problem of developing recursive algorithms that need to have an idea about the dynamics of the process. When you use recursion in methods of objects, especially at the level of abstract ancestor, appears the problem of understanding their own algorithms in the context of the time of its execution.

recursive algorithms

Currently, there are no restrictions on the level of nesting of functions and the capacity of the stack in the mechanisms of the calls, but there is a problem of understanding: in a moment of time what level or what kind of place in General, the algorithm performed a recursive function call and at what number of calls herself she is.

Existing debugging tools often powerless to tell the programmer the right decision.

Loops and recursion

It is believed that the cyclic execution is equivalent to recursion. Indeed, in some cases, a recursive algorithm can be implemented in the syntax of conditional and loop constructs.

However, if there is a clear understanding of what a particular feature should be implemented by a recursive algorithm, you must refuse any external use of loop or conditional statements.

the implementation of recursive algorithms

The point here is that a recursive solution in the form of a function that use itself is a finished, functionally complete algorithm. This algorithm will require programmer effort in its creation, understand the dynamics of the algorithm, but it will be the final solution that does not require external control.

Any combination of the outer conditional and cyclic operators does not allow to represent recursive algorithm to complete the function.

The Consensus of recursion and OOP

Almost all options for the development of a recursive algorithm there is a plan to develop two algorithms. First, the algorithm generates a list of future objects (instances), and the second algorithm is actually a recursive function.

The Best solution is to draw a recursion in the form of a single property (a method), in fact contains a recursive algorithm, and all the preparatory work to render in the object's constructor.

Recursive algorithm will only correct solution when it only works by itself, without external control. External algorithm can only give a signal to work. The result of this work should be the expected solution without external support.

Recursion should always be a complete standalone solution.

Intuitive understanding and functional completeness

When object-oriented programming has become the de facto standard, it became obvious that for efficient encoding, you should change your own thinking. The programmer must move from syntax and semantics of the language dynamic semantics during the execution of the algorithm.

Characteristic of recursion: it can be applied in all:

  • Parsing sites;
  • The search operation;
  • Analysis of text information;
  • Reading or creating MS Word documents;
  • Sampling or analysis...tags

Characteristic of OOP: it gives the possibility to describe recursive algorithm on the abstract level of the ancestor, but to provide for appeal to the unique descendants, each of which has its own palette data and properties.

the concept of recursive algorithms

Recursion ideal, because it requires the functional completeness of his algorithm. OOP improves the quality indicators of a recursive algorithm, giving him access to all the unique descendants.


Article in other languages:

AR: https://tostpost.com/ar/education/9170-recursive-algorithm-description-analysis-features-and-examples.html

BE: https://tostpost.com/be/adukacyya/16410-rekurs-ny-algarytm-ap-sanne-anal-z-asabl-vasc-pryklady.html

DE: https://tostpost.com/de/bildung/16416-algorithmus-rekursiv-beschreibung-analyse-eigenschaften-und-beispiele.html

ES: https://tostpost.com/es/la-educaci-n/16423-el-algoritmo-recursivo-descripci-n-an-lisis-caracter-sticas-y-ejemplos.html

HI: https://tostpost.com/hi/education/9174-recursive-algorithm-description-analysis-features-and-examples.html

JA: https://tostpost.com/ja/education/9174-recursive-algorithm-description-analysis-features-and-examples.html

KK: https://tostpost.com/kk/b-l-m/16411-algoritm-rekursivnyy-sipattamasy-taldau-erekshel-kter-men-lg-ler.html

PL: https://tostpost.com/pl/edukacja/16384-algorytm-rekursywny-opis-analiza-opis-i-przyk-ady.html

PT: https://tostpost.com/pt/educa-o/16390-o-algoritmo-recursivo-descri-o-an-lise-caracter-sticas-e-exemplos.html

TR: https://tostpost.com/tr/e-itim/16416-algoritma-zyinelemeli-a-klama-analiz-zellikleri-ve-rnekler.html

UK: https://tostpost.com/uk/osv-ta/16404-rekursivniy-algoritm-opis-anal-z-osoblivost-ta-prikladi.html

ZH: https://tostpost.com/zh/education/9989-recursive-algorithm-description-analysis-features-and-examples.html






Alin Trodden - author of the article, editor
"Hi, I'm Alin Trodden. I write texts, read books, and look for impressions. And I'm not bad at telling you about it. I am always happy to participate in interesting projects."

Comments (0)

This article has no comment, be the first!

Add comment

Related News

Summer Polyglot. Study Abroad.

Summer Polyglot. Study Abroad.

most of the students coming to summer language schools in the UK. It is not only that English is spoken half the world: that the Brits were the first to introduce the program «plus». That children are not only learned...

The first Governor of the state francs. The Frankish state: appearance

The first Governor of the state francs. The Frankish state: appearance

the First ruling dynasty of the Frankish state was the Merovingians, whose ancestors are considered to be mythical rather than real personalities. Accurate data on them there was little, and it gave the right of posterity to ascri...

Biogenic migration of atoms. The cycle of matter and evolution of the biosphere

Biogenic migration of atoms. The cycle of matter and evolution of the biosphere

Biogenic migration of atoms – this is a special kind of cycle in nature chemical substances, which occurs due to the life processes of living organisms. Under the livelihoods refers to their breathing, feeding, reproduction,...

Each formula has its own face: an essay on the topic

Each formula has its own face: an essay on the topic "Thank science!"

If in ancient times people began to observe the world, think, analyze and create something new, then present the benefits of civilization would be impossible. And who knows, maybe there would not be human. Therefore, the essay on ...

What is a calorimeter in physics? Definition, usage

What is a calorimeter in physics? Definition, usage

In this article we will answer the question: “What is a calorimeter?”. Define the General characteristics of this mechanism, its working principle and area of application, functionality and measurement values. And also...

2 Catherine: a biography of the Empress. The History Of Russia

2 Catherine: a biography of the Empress. The History Of Russia

Ambiguous personality was 2 Catherine the Great-Russian Empress of German origin. Most of the articles and films she is shown as a lover of courtiers balls and luxury toilets, as well as numerous favorites, with whom she once was ...