Concepts inIdentifying loops in almost linear time
Control flow
In computer science, control flow (or alternatively, flow of control) refers to the order in which the individual statements, instructions or function calls of an imperative or a declarative program are executed or evaluated. Within an imperative programming language, a control flow statement is a statement whose execution results in a choice being made as to which of two or more paths should be followed.
more from Wikipedia
Time complexity
In computer science, the time complexity of an algorithm quantifies the amount of time taken by an algorithm to run as a function of the size of the input to the problem. The time complexity of an algorithm is commonly expressed using big O notation, which suppresses multiplicative constants and lower order terms. When expressed this way, the time complexity is said to be described asymptotically, i.e. , as the input size goes to infinity.
more from Wikipedia
Robert Tarjan
Robert Endre Tarjan (born April 30, 1948) is an American computer scientist. He is the discoverer of several graph algorithms, including Tarjan's off-line least common ancestors algorithm, and co-inventor of both splay trees and Fibonacci heaps. Tarjan is currently the James S. McDonnell Distinguished University Professor of Computer Science at Princeton University, and is also a Senior Fellow at Hewlett-Packard.
more from Wikipedia
Best, worst and average case
In computer science, best, worst and average cases of a given algorithm express what the resource usage is at least, at most and on average, respectively. Usually the resource being considered is running time, but it could also be memory or other resources. In real-time computing, the worst-case execution time is often of particular concern since it is important to know how much time might be needed in the worst case to guarantee that the algorithm will always finish on time.
more from Wikipedia
Loop optimization
In compiler theory, loop optimization plays an important role in improving cache performance, making effective use of parallel processing capabilities, and reducing overheads associated with executing loops. Most execution time of a scientific program is spent on loops. Thus a lot of compiler analysis and compiler optimization techniques have been developed to make the execution of loops faster.
more from Wikipedia
Execution (computing)
Execution in computer and software engineering is the process by which a computer or a virtual machine carries out the instructions of a computer program. The instructions in the program trigger sequences of simple actions on the executing machine. Those actions produce effects according to the semantics of the instructions in the program. Programs for a computer may execute in a batch process without human interaction, or a user may type commands in an interactive session of an interpreter.
more from Wikipedia
Algorithmic efficiency
In computer science, efficiency is used to describe properties of an algorithm relating to how much of various types of resources it consumes. Algorithmic efficiency can be thought of as analogous to engineering productivity for a repeating or continuous process, where the goal is to reduce resource consumption, including time to completion, to some acceptable, optimal level.
more from Wikipedia
Irreducible polynomial
In mathematics, a polynomial is said to be irreducible if it cannot be factored into the product of two or more non-trivial polynomials whose coefficients are of a specified type. Thus in the common context of polynomials with rational coefficients, a polynomial is irreducible if it cannot be expressed as the product of two or more such polynomials, each of them having a lower degree than the original one. For example, while is reducible over the rationals, is not.
more from Wikipedia