AlgorithmIn mathematics and computer science, an algorithm (ˈælɡərɪðəm) is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing calculations and data processing. More advanced algorithms can use conditionals to divert the code execution through various routes (referred to as automated decision-making) and deduce valid inferences (referred to as automated reasoning), achieving automation eventually.
Randomized algorithmA randomized algorithm is an algorithm that employs a degree of randomness as part of its logic or procedure. The algorithm typically uses uniformly random bits as an auxiliary input to guide its behavior, in the hope of achieving good performance in the "average case" over all possible choices of random determined by the random bits; thus either the running time, or the output (or both) are random variables.
Online algorithmIn computer science, an online algorithm is one that can process its input piece-by-piece in a serial fashion, i.e., in the order that the input is fed to the algorithm, without having the entire input available from the start. In contrast, an offline algorithm is given the whole problem data from the beginning and is required to output an answer which solves the problem at hand. In operations research, the area in which online algorithms are developed is called online optimization.
Drainage divideA drainage divide, water divide, ridgeline, watershed, water parting or height of land is elevated terrain that separates neighboring drainage basins. On rugged land, the divide lies along topographical ridges, and may be in the form of a single range of hills or mountains, known as a dividing range. On flat terrain, especially where the ground is marshy, the divide may be difficult to discern. A triple divide is a point, often a summit, where three drainage basins meet.
Continental divideA continental divide is a drainage divide on a continent such that the drainage basin on one side of the divide feeds into one ocean or sea, and the basin on the other side either feeds into a different ocean or sea, or else is endorheic, not connected to the open sea. Every continent on earth except Antarctica (which has no known significant, definable free-flowing surface rivers) has at least one continental drainage divide; islands, even small ones like Killiniq Island on the Labrador Sea in Canada, may also host part of a continental divide or have their own island-spanning divide.
Continental Divide of the AmericasThe Continental Divide of the Americas (also known as the Great Divide, the Western Divide or simply the Continental Divide; Divisoria continental de América, Gran Divisoria) is the principal, and largely mountainous, hydrological divide of the Americas. The Continental Divide extends from the Bering Strait to the Strait of Magellan, and separates the watersheds that drain into the Pacific Ocean from those river systems that drain into the Atlantic and Arctic Ocean, including those that drain into the Gulf of Mexico, the Caribbean Sea, and Hudson Bay.
Sorting networkIn computer science, comparator networks are abstract devices built up of a fixed number of "wires", carrying values, and comparator modules that connect pairs of wires, swapping the values on the wires if they are not in a desired order. Such networks are typically designed to perform sorting on fixed numbers of values, in which case they are called sorting networks. Sorting networks differ from general comparison sorts in that they are not capable of handling arbitrarily large inputs, and in that their sequence of comparisons is set in advance, regardless of the outcome of previous comparisons.
Selection algorithmIn computer science, a selection algorithm is an algorithm for finding the th smallest value in a collection of ordered values, such as numbers. The value that it finds is called the th order statistic. Selection includes as special cases the problems of finding the minimum, median, and maximum element in the collection. Selection algorithms include quickselect, and the median of medians algorithm. When applied to a collection of values, these algorithms take linear time, as expressed using big O notation.
Cache-oblivious algorithmIn computing, a cache-oblivious algorithm (or cache-transcendent algorithm) is an algorithm designed to take advantage of a processor cache without having the size of the cache (or the length of the cache lines, etc.) as an explicit parameter. An optimal cache-oblivious algorithm is a cache-oblivious algorithm that uses the cache optimally (in an asymptotic sense, ignoring constant factors). Thus, a cache-oblivious algorithm is designed to perform well, without modification, on multiple machines with different cache sizes, or for a memory hierarchy with different levels of cache having different sizes.