Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Hybrid algorithm

From Wikipedia, the free encyclopedia
icon
This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Hybrid algorithm" – news ·newspapers ·books ·scholar ·JSTOR
(July 2025) (Learn how and when to remove this message)

Ahybrid algorithm is analgorithm that combines two or more other algorithms that solve the same problem, either choosing one based on some characteristic of the data, or switching between them over the course of the algorithm. This is generally done to combine desired features of each, so that the overall algorithm is better than the individual components.[1]

"Hybrid algorithm" does not refer to simply combining multiple algorithms to solve a different problem – many algorithms can be considered as combinations of simpler pieces – but only to combining algorithms that solve the same problem, but differ in other characteristics, notably performance.

Examples

[edit]

Incomputer science, hybrid algorithms are very common in optimized real-world implementations ofrecursive algorithms, particularlyimplementations ofdivide-and-conquer ordecrease-and-conquer algorithms, where the size of the data decreases as one moves deeper in the recursion. In this case, one algorithm is used for the overall approach (on large data), but deep in the recursion, it switches to a different algorithm, which is more efficient on small data. A common example is insorting algorithms, where the insertion sort, which is inefficient on large data, but very efficient on small data (say, five to ten elements), is used as the final step, after primarily applying another algorithm, such asmerge sort orquicksort. Merge sort and quicksort are asymptotically optimal on large data, but the overhead becomes significant if applying them to small data, hence the use of a different algorithm at the end of the recursion. A highly optimized hybrid sorting algorithm isTimsort, which combines merge sort, insertion sort, together with additional logic (includingbinary search) in the merging logic.

A general procedure for a simple hybrid recursive algorithm isshort-circuiting the base case, also known asarm's-length recursion. In this case whether the next step will result in the base case is checked before the function call, avoiding an unnecessary function call. For example, in a tree, rather than recursing to a child node and then checking if it is null, checking null before recursing. This is useful for efficiency when the algorithm usually encounters the base case many times, as in many tree algorithms, but is otherwise considered poor style, particularly in academia, due to the added complexity.

Another example of hybrid algorithms for performance reasons areintrosort andintroselect, which combine one algorithm for fast average performance, falling back on another algorithm to ensure (asymptotically) optimal worst-case performance. Introsort begins with aquicksort, but switches to aheap sort if quicksort is not progressing well; analogously introselect begins withquickselect, but switches tomedian of medians if quickselect is not progressing well.

Centralizeddistributed algorithms can often be considered as hybrid algorithms, consisting of an individual algorithm (run on each distributed processor), and a combining algorithm (run on a centralized distributor) – these correspond respectively to running the entire algorithm on one processor, or running the entire computation on the distributor, combining trivial results (a one-element data set from each processor). A basic example of these algorithms aredistribution sorts, particularly used forexternal sorting, which divide the data into separate subsets, sort the subsets, and then combine the subsets into totally sorted data; examples includebucket sort andflashsort.

However, in general distributed algorithms need not be hybrid algorithms, as individual algorithms or combining or communication algorithms may be solving different problems. For example, in models such asMapReduce, the Map and Reduce step solve different problems, and are combined to solve a different, third problem.

References

[edit]
  1. ^Malek, Miroslaw; Guruswamy, Mohan; Owens, Howard; Pandya, Mihir (1989).A hybrid algorithm technique. University of Texas at Austin, Department of Computer Sciences.

See also

[edit]
Retrieved from "https://en.wikipedia.org/w/index.php?title=Hybrid_algorithm&oldid=1299835564"
Category:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp