Dies ist eine Liste von Artikeln zu Algorithmen in der deutschsprachigen Wikipedia. Siehe auch unter Datenstruktur für eine Liste von Datenstrukturen. Mit Hilfe eines neuen Tools zur Evaluation von Editierungen in der freien Online-Enzyklopädie Wikipedia möchte die Wikimedia Foundation. Meist hilfreich aber auch nicht immer unbedenklich, kommen Algorithmen immer größere Bedeutung zu. Was ein Algorithmus ist und wie sie.
Algorithmus Wikipedia-Artikel „Algorithmus“:  Duden online „Algorithmus“:  Digitales Wörterbuch der deutschen Sprache „Algorithmus“: [*] Uni Leipzig: Wortschatz-. Ist das schon Roboter-Journalismus? Der Algorithmus eines Schweden erstellt automatisch zigtausende Wikipedia-Artikel. Das gefällt nicht. ZUM Unterrichten ist das neue Projekt der ZUM e.V. für die interaktive Erstellung von Lerninhalten. Diese Seite findet sich ab sofort unter.
Wikipedia Algorithmus Navigationsmenü VideoWas ist ein Algorithmus? - Science Clip Der Physiker Dr. Wenn an mindestens einer Stelle mehr als eine Möglichkeit besteht ohne Vorgabe, welche Real Madrid Vs Liverpool Live wählen istFlexepin ist der gesamte Algorithmus Joyclu. Was die IT-Forensik im Ernstfall leisten kann. Sie gilt deshalb als die erste Programmiererin.
He did not call it Sorting by numbers , he called it Mergesort. It is a very good algorithm for sorting, compared to others. The first algorithm takes much longer to sort the cards than the second, but it can be improved made better.
Looking at bubble sort, it can be noticed that cards with high numbers move from the top of the stack quite quickly, but cards with low numbers at the bottom of the stack take a long time to rise move to the top.
To improve the first algorithm here is the idea:. This algorithm was developed by C. Hoare in It is one of most widely used algorithms for sorting today.
It is called Quicksort. If players have cards with colors and numbers on them, they can sort them by color and number if they do the "sorting by colors" algorithm, then do the "sorting by numbers" algorithm to each colored stack, then put the stacks together.
The sorting-by-numbers algorithms are more difficult to do than the sorting-by-colors algorithm, because they may have to do the steps again many times.
One would say that sorting by numbers is more complex. From Simple English Wikipedia, the free encyclopedia.
An algorithm is a step procedure to solve logical and mathematical problems. Ein Algorithmus ist deterministisch , wenn zu jedem Zeitpunkt der Algorithmusausführung der nächste Handlungsschritt eindeutig definiert ist.
Wenn an mindestens einer Stelle mehr als eine Möglichkeit besteht ohne Vorgabe, welche zu wählen ist , dann ist der gesamte Algorithmus nichtdeterministisch.
Beispiele für deterministische Algorithmen sind Bubblesort und der euklidische Algorithmus. Dabei gilt, dass jeder deterministische Algorithmus determiniert, während aber nicht jeder determinierte Algorithmus deterministisch ist.
So ist Quicksort mit zufälliger Wahl des Pivotelements ein Beispiel für einen determinierten, aber nicht deterministischen Algorithmus, da sein Ergebnis bei gleicher Eingabe und eindeutiger Sortierung immer dasselbe ist, der Weg dorthin jedoch zufällig erfolgt.
Nichtdeterministische Algorithmen können im Allgemeinen mit keiner realen Maschine auch nicht mit Quantencomputern direkt umgesetzt werden.
Beispiel für einen nichtdeterministischen Algorithmus wäre ein Kochrezept, das mehrere Varianten beschreibt. Es bleibt dem Koch überlassen, welche er durchführen möchte.
Auch das Laufen durch einen Irrgarten lässt an jeder Verzweigung mehrere Möglichkeiten, und neben vielen Sackgassen können mehrere Wege zum Ausgang führen.
Die Beschreibung des Algorithmus besitzt eine endliche Länge, der Quelltext muss also aus einer begrenzten Anzahl von Zeichen bestehen.
Ein Algorithmus darf zu jedem Zeitpunkt seiner Ausführung nur begrenzt viel Speicherplatz benötigen. Ein nicht-terminierender Algorithmus somit zu keinem Ergebnis kommend gerät für manche Eingaben in eine so genannte Endlosschleife.
Für manche Abläufe ist ein nicht-terminierendes Verhalten gewünscht: z. Steuerungssysteme, Betriebssysteme und Programme, die auf Interaktion mit dem Benutzer aufbauen.
Solange der Benutzer keinen Befehl zum Beenden eingibt, laufen diese Programme beabsichtigt endlos weiter. Donald E. Knuth schlägt in diesem Zusammenhang vor, nicht terminierende Algorithmen als rechnergestützte Methoden Computational Methods zu bezeichnen.
Darüber hinaus ist die Terminierung eines Algorithmus das Halteproblem nicht entscheidbar. Die Erforschung und Analyse von Algorithmen ist eine Hauptaufgabe der Informatik und wird meist theoretisch ohne konkrete Umsetzung in eine Programmiersprache durchgeführt.
Sie ähnelt somit dem Vorgehen in manchen mathematischen Gebieten, in denen die Analyse eher auf die zugrunde liegenden Konzepte als auf konkrete Umsetzungen ausgerichtet ist.
Algorithmen werden zur Analyse in eine stark formalisierte Form gebracht und mit den Mitteln der formalen Semantik untersucht. There is a certain number of paradigms, each different from the other.
Furthermore, each of these categories includes many different types of algorithms. Some common paradigms are:.
For optimization problems there is a more specific classification of algorithms; an algorithm for such problems may fall into one or more of the general categories described above as well as into one of the following:.
Every field of science has its own problems and needs efficient algorithms. Related problems in one field are often studied together. Some example classes are search algorithms , sorting algorithms , merge algorithms , numerical algorithms , graph algorithms , string algorithms , computational geometric algorithms , combinatorial algorithms , medical algorithms , machine learning , cryptography , data compression algorithms and parsing techniques.
Fields tend to overlap with each other, and algorithm advances in one field may improve those of other, sometimes completely unrelated, fields.
For example, dynamic programming was invented for optimization of resource consumption in industry but is now used in solving a broad range of problems in many fields.
Algorithms can be classified by the amount of time they need to complete compared to their input size:.
Some problems may have multiple algorithms of differing complexity, while other problems might have no algorithms or no known efficient algorithms.
There are also mappings from some problems to other problems. Owing to this, it was found to be more suitable to classify the problems themselves instead of the algorithms into equivalence classes based on the complexity of the best possible algorithms for them.
Algorithms, by themselves, are not usually patentable. In the United States, a claim consisting solely of simple manipulations of abstract concepts, numbers, or signals does not constitute "processes" USPTO , and hence algorithms are not patentable as in Gottschalk v.
However practical applications of algorithms are sometimes patentable. For example, in Diamond v. Diehr , the application of a simple feedback algorithm to aid in the curing of synthetic rubber was deemed patentable.
The patenting of software is highly controversial, and there are highly criticized patents involving algorithms, especially data compression algorithms, such as Unisys ' LZW patent.
Additionally, some cryptographic algorithms have export restrictions see export of cryptography. The earliest evidence of algorithms is found in the Babylonian mathematics of ancient Mesopotamia modern Iraq.
A Sumerian clay tablet found in Shuruppak near Baghdad and dated to circa BC described the earliest division algorithm. Babylonian clay tablets describe and employ algorithmic procedures to compute the time and place of significant astronomical events.
Algorithms for arithmetic are also found in ancient Egyptian mathematics , dating back to the Rhind Mathematical Papyrus circa BC.
Two examples are the Sieve of Eratosthenes , which was described in the Introduction to Arithmetic by Nicomachus ,   : Ch 9.
Tally-marks: To keep track of their flocks, their sacks of grain and their money the ancients used tallying: accumulating stones or marks scratched on sticks or making discrete symbols in clay.
Through the Babylonian and Egyptian use of marks and symbols, eventually Roman numerals and the abacus evolved Dilson, p. Tally marks appear prominently in unary numeral system arithmetic used in Turing machine and Post—Turing machine computations.
In Europe, the word "algorithm" was originally used to refer to the sets of rules and techniques used by Al-Khwarizmi to solve algebraic equations, before later being generalized to refer to any set of rules or techniques.
A good century and a half ahead of his time, Leibniz proposed an algebra of logic, an algebra that would specify the rules for manipulating logical concepts in the manner that ordinary algebra specifies the rules for manipulating numbers.
The first cryptographic algorithm for deciphering encrypted code was developed by Al-Kindi , a 9th-century Arab mathematician , in A Manuscript On Deciphering Cryptographic Messages.
He gave the first description of cryptanalysis by frequency analysis , the earliest codebreaking algorithm. The clock : Bolter credits the invention of the weight-driven clock as "The key invention [of Europe in the Middle Ages]", in particular, the verge escapement  that provides us with the tick and tock of a mechanical clock.
Logical machines — Stanley Jevons ' "logical abacus" and "logical machine" : The technical problem was to reduce Boolean equations when presented in a form similar to what is now known as Karnaugh maps.
Jevons describes first a simple "abacus" of "slips of wood furnished with pins, contrived so that any part or class of the [logical] combinations can be picked out mechanically More recently, however, I have reduced the system to a completely mechanical form, and have thus embodied the whole of the indirect process of inference in what may be called a Logical Machine " His machine came equipped with "certain moveable wooden rods" and "at the foot are 21 keys like those of a piano [etc] With this machine he could analyze a " syllogism or any other simple logical argument".
This machine he displayed in before the Fellows of the Royal Society. But not to be outdone he too presented "a plan somewhat analogous, I apprehend, to Prof.
Jevon's abacus Jevons's logical machine, the following contrivance may be described. I prefer to call it merely a logical-diagram machine Jacquard loom, Hollerith punch cards, telegraphy and telephony — the electromechanical relay : Bell and Newell indicate that the Jacquard loom , precursor to Hollerith cards punch cards, , and "telephone switching technologies" were the roots of a tree leading to the development of the first computers.
By the late 19th century the ticker tape ca s was in use, as was the use of Hollerith cards in the U. Then came the teleprinter ca.
Telephone-switching networks of electromechanical relays invented was behind the work of George Stibitz , the inventor of the digital adding device.
As he worked in Bell Laboratories, he observed the "burdensome' use of mechanical calculators with gears. When the tinkering was over, Stibitz had constructed a binary adding device".
Davis observes the particular importance of the electromechanical relay with its two "binary states" open and closed :.
Symbols and rules : In rapid succession, the mathematics of George Boole , , Gottlob Frege , and Giuseppe Peano — reduced arithmetic to a sequence of symbols manipulated by rules.
Peano's The principles of arithmetic, presented by a new method was "the first attempt at an axiomatization of mathematics in a symbolic language ".
But Heijenoort gives Frege this kudos: Frege's is "perhaps the most important single work ever written in logic. The paradoxes : At the same time a number of disturbing paradoxes appeared in the literature, in particular, the Burali-Forti paradox , the Russell paradox —03 , and the Richard Paradox.
Effective calculability : In an effort to solve the Entscheidungsproblem defined precisely by Hilbert in , mathematicians first set about to define what was meant by an "effective method" or "effective calculation" or "effective calculability" i.
Gödel's Princeton lectures of and subsequent simplifications by Kleene. Barkley Rosser 's definition of "effective method" in terms of "a machine".
Kleene 's proposal of a precursor to " Church thesis " that he called "Thesis I",  and a few years later Kleene's renaming his Thesis "Church's Thesis"  and proposing "Turing's Thesis".
Emil Post described the actions of a "computer" human being as follows:. Alan Turing 's work  preceded that of Stibitz ; it is unknown whether Stibitz knew of the work of Turing.
Turing's biographer believed that Turing's use of a typewriter-like model derived from a youthful interest: "Alan had dreamt of inventing typewriters as a boy; Mrs.
Turing had a typewriter, and he could well have begun by asking himself what was meant by calling a typewriter 'mechanical'".
Turing—his model of computation is now called a Turing machine —begins, as did Post, with an analysis of a human computer that he whittles down to a simple set of basic motions and "states of mind".
But he continues a step further and creates a machine as a model of computation of numbers. The most general single operation must, therefore, be taken to be one of the following:.
A few years later, Turing expanded his analysis thesis, definition with this forceful expression of it:. Barkley Rosser defined an 'effective [mathematical] method' in the following manner italicization added :.
Rosser's footnote No. Stephen C. Kleene defined as his now-famous "Thesis I" known as the Church—Turing thesis. But he did this in the following context boldface in original :.
A number of efforts have been directed toward further refinement of the definition of "algorithm", and activity is on-going because of issues surrounding, in particular, foundations of mathematics especially the Church—Turing thesis and philosophy of mind especially arguments about artificial intelligence.
For more, see Algorithm characterizations. From Wikipedia, the free encyclopedia. For other uses, see Algorithm disambiguation. Unambiguous specification of how to solve a class of problems.
For a detailed presentation of the various points of view on the definition of "algorithm", see Algorithm characterizations. It has been suggested that this article be split into a new article titled Algorithm design.
Discuss March Further information: List of algorithms. Output: The largest number in the list L. Further information: Euclid's algorithm.
Main article: Analysis of algorithms. Main articles: Empirical algorithmics , Profiling computer programming , and Program optimization. Main article: Algorithmic efficiency.
See also: List of algorithms. See also: Complexity class and Parameterized complexity. See also: Software patent. Abstract machine Algorithm engineering Algorithm characterizations Algorithmic composition Algorithmic entities Algorithmic synthesis Algorithmic technique Algorithmic topology Garbage in, garbage out Introduction to Algorithms textbook List of algorithms List of algorithm general topics List of important publications in theoretical computer science — Algorithms Regulation of algorithms Theory of computation Computability theory Computational complexity theory.
Math Vault. August 1, Archived from the original on February 28, Retrieved November 14, Merriam-Webster Online Dictionary.
Archived from the original on February 14, Rogers opines that: "a computation is carried out in a discrete stepwise fashion, without the use of continuous methods or analogue devices The Story of Mathematics.
Archived from the original on September 11, Archived from the original on July 25, Archived from the original on August 2, Retrieved May 3, Chambers Dictionary.
Archived from the original on March 31, Retrieved December 13, Archived from the original on April 12, University of Indianapolis.
Archived from the original on July 18, Retrieved May 30, Following is an implementation of the algorithm in Rust , adapted from uutils.
The algorithm requires O n steps, where n is the number of bits in the larger of the two numbers, as every 2 steps reduce at least one of the operands by at least a factor of 2.
Each step involves only a few arithmetic operations O 1 with a small constant ; when working with word-sized numbers, each arithmetic operation translates to a single machine operation, so the number of machine operations is on the order of log max u , v.
However, the asymptotic complexity of this algorithm is O n 2 ,  as those arithmetic operations subtract and shift each take linear time for arbitrarily-sized numbers one machine operation per word of the representation.
This is the same as for the Euclidean algorithm, though neither is the fastest for arbitrary-precision arithmetic ; instead, recursive methods that combine ideas from the binary GCD algorithm with the Schönhage—Strassen algorithm for fast integer multiplication can find GCDs in near-linear time, but only outperform older algorithms for numbers larger than about 64 kilobits i.
An algorithm for computing the GCD of two numbers was known in ancient China, under the Han dynasty , as a method to reduce fractions:.
If possible halve it; otherwise, take the denominator and the numerator, subtract the lesser from the greater, and do that alternately to make them the same.