搜索
热搜: music
门户 Mathematics Mathematical statements Algorithms view content

Combinatorial algorithms

2014-3-16 11:13| view publisher: amanda| views: 1002| wiki(57883.com) 0 : 0

description: Further information: CombinatoricsGeneral combinatorial algorithmsBrent's algorithm: finds cycles in iterations using only two iteratorsFloyd's cycle-finding algorithm: finds cycles in iterationsGale ...
Further information: Combinatorics
General combinatorial algorithms
Brent's algorithm: finds cycles in iterations using only two iterators
Floyd's cycle-finding algorithm: finds cycles in iterations
Gale–Shapley algorithm: solves the stable marriage problem
Pseudorandom number generators (uniformly distributed):
Blum Blum Shub
Lagged Fibonacci generator
Linear congruential generator
Mersenne twister
Graph algorithms
Further information: Graph theory and Category:Graph algorithms
Coloring algorithm: Graph coloring algorithm.
Hopcroft–Karp algorithm: convert a bipartite graph to a maximum cardinality matching
Hungarian algorithm: algorithm for finding a perfect matching
Prüfer coding: conversion between a labeled tree and its Prüfer sequence
Tarjan's off-line least common ancestors algorithm: compute lowest common ancestors for pairs of nodes in a tree
Topological sort: finds linear order of nodes (e.g. jobs) based on their dependencies.
Graph drawing
Further information: Graph drawing
Force-based algorithms (also known as force-directed algorithms or spring-based algorithm)
Spectral layout
Network theory
Further information: Network theory
Network analysis
Link analysis
Girvan–Newman algorithm: detect communities in complex systems
Web link analysis
Hyperlink-Induced Topic Search (HITS) (also known as Hubs and authorities)
PageRank
TrustRank
Flow networks
Dinic's algorithm: is a strongly polynomial algorithm for computing the maximum flow in a flow network.
Edmonds–Karp algorithm: implementation of Ford–Fulkerson
Ford–Fulkerson algorithm: computes the maximum flow in a graph
Karger's algorithm: a Monte Carlo method to compute the minimum cut of a connected graph
Push–relabel algorithm: computes a maximum flow in a graph
Routing for graphs
Edmonds's algorithm (also known as Chu–Liu/Edmonds's algorithm): find maximum or minimum branchings
Euclidean minimum spanning tree: algorithms for computing the minimum spanning tree of a set of points in the plane
Euclidean shortest path problem: find the shortest path between two points that does not intersect any obstacle
Longest path problem: find a simple path of maximum length in a given graph
Minimum spanning tree
Boruvka's algorithm
Kruskal's algorithm
Prim's algorithm
Reverse-delete algorithm
Nonblocking Minimal Spanning Switch say, for a telephone exchange
Shortest path problem
Bellman–Ford algorithm: computes shortest paths in a weighted graph (where some of the edge weights may be negative)
Dijkstra's algorithm: computes shortest paths in a graph with non-negative edge weights
Floyd–Warshall algorithm: solves the all pairs shortest path problem in a weighted, directed graph
Johnson algorithm: All pairs shortest path algorithm in sparse weighted directed graph
Transitive closure problem: find the transitive closure of a given binary relation
Traveling salesman problem
Christofides algorithm
Nearest neighbour algorithm
Warnsdorff's algorithm: A heuristic method for solving the Knight's Tour problem.
Graph search
Further information: State space search and Graph search algorithm
A*: special case of best-first search that uses heuristics to improve speed
B*: a best-first graph search algorithm that finds the least-cost path from a given initial node to any goal node (out of one or more possible goals)
Backtracking: abandon partial solutions when they are found not to satisfy a complete solution
Beam search: is a heuristic search algorithm that is an optimization of best-first search that reduces its memory requirement
Beam stack search: integrates backtracking with beam search
Best-first search: traverses a graph in the order of likely importance using a priority queue
Bidirectional search: find the shortest path from an initial vertex to a goal vertex in a directed graph
Bloom filter: a constant time and memory check to see whether a given element exists in a set. May return a false positive, but never a false negative.
Breadth-first search: traverses a graph level by level
D*: an incremental heuristic search algorithm
Depth-first search: traverses a graph branch by branch
Dijkstra's algorithm: A special case of A* for which no heuristic function is used
General Problem Solver: a seminal theorem-proving algorithm intended to work as a universal problem solver machine.
Iterative deepening depth-first search (IDDFS): a state space search strategy
Lexicographic breadth-first search (also known as Lex-BFS): a linear time algorithm for ordering the vertices of a graph
Uniform-cost search: a tree search that finds the lowest cost route where costs vary
SSS*: state space search traversing a game tree in a best-first fashion similar to that of the A* search algorithm
Subgraphs
Bron–Kerbosch algorithm: a technique for finding maximal cliques in an undirected graph
Strongly connected components
Path-based strong component algorithm
Kosaraju's algorithm
Tarjan's strongly connected components algorithm
Sequence algorithms
Further information: Sequences
Approximate sequence matching
Bitap algorithm: fuzzy algorithm that determines if strings are approximately equal.
Phonetic algorithms
Daitch–Mokotoff Soundex: a Soundex refinement which allows matching of Slavic and Germanic surnames
Double Metaphone: an improvement on Metaphone
Match Rating Approach: a phonetic algorithm developed by Western Airlines
Metaphone: an algorithm for indexing words by their sound, when pronounced in English
NYSIIS: phonetic algorithm, improves on Soundex
Soundex: a phonetic algorithm for indexing names by sound, as pronounced in English
String metrics: compute a similarity or dissimilarity (distance) score between two pairs of text strings
Damerau–Levenshtein distance compute a distance measure between two strings, improves on Levenshtein distance
Dice's coefficient (also known as the Dice coefficient): a similarity measure related to the Jaccard index
Hamming distance: sum number of positions which are different
Jaro–Winkler distance: is a measure of similarity between two strings
Levenshtein edit distance: compute a metric for the amount of difference between two sequences
Trigram search: search for text when the exact syntax or spelling of the target object is not precisely known
Sequence search
Linear search: finds an item in an unsorted sequence
Selection algorithm: finds the kth largest item in a sequence
Ternary search: a technique for finding the minimum or maximum of a function that is either strictly increasing and then strictly decreasing or vice versa
Sorted lists
Binary search algorithm: locates an item in a sorted sequence
Fibonacci search technique: search a sorted sequence using a divide and conquer algorithm that narrows down possible locations with the aid of Fibonacci numbers
Jump search (or block search): linear search on a smaller subset of the sequence
Predictive search: binary-like search which factors in magnitude of search term versus the high and low values in the search. Sometimes called dictionary search or interpolated search.
Uniform binary search: an optimization of the classic binary search algorithm
Sequence merging
Main article: Merge algorithm
Simple merge algorithm
k-way merge algorithm
Union (merge, with elements on the output not repeated)
Sequence permutations
Further information: Permutations
Fisher–Yates shuffle (also known as the Knuth shuffle): randomly shuffle a finite set
Schensted algorithm: constructs a pair of Young tableaux from a permutation
Steinhaus–Johnson–Trotter algorithm (also known as the Johnson–Trotter algorithm): generate permutations by transposing elements
Heap's permutation generation algorithm: interchange elements to generate next permutation
Sequence alignment
Dynamic time warping: measure similarity between two sequences which may vary in time or speed
Hirschberg's algorithm: finds the least cost sequence alignment between two sequences, as measured by their Levenshtein distance
Needleman–Wunsch algorithm: find global alignment between two sequences
Smith–Waterman algorithm: find local sequence alignment
Sequence sorting
Main article: Sorting algorithms
Accuracy dispute
This article appears to contradict the article Sorting_algorithm#Comparison_of_algorithms. Please see discussion on the linked talk page. Please do not remove this message until the contradictions are resolved. (March 2011)
Exchange Sorts
Bubble sort: for each pair of indices, swap the items if out of order
Cocktail sort
Comb sort
Gnome sort
Odd-even sort
Quicksort: divide list into two, with all items on the first list coming before all items on the second list.; then sort the two lists. Often the method of choice
Humorous or ineffective
Bogosort
Stooge sort
Hybrid
Flashsort
Introsort: begin with quicksort and switch to heapsort when the recursion depth exceeds a certain level
Timsort: adaptative algorithm derived from merge sort and insertion sort. Used in Python 2.3 and up, and Java SE 7.
Insertion sorts
Insertion sort: determine where the current item belongs in the list of sorted ones, and insert it there
Library sort
Patience sorting
Shell sort: an attempt to improve insertion sort
Tree sort (binary tree sort): build binary tree, then traverse it to create sorted list
Cycle sort: in-place with theoretically optimal number of writes
Merge sorts
Merge sort: sort the first and second half of the list separately, then merge the sorted lists
Strand sort
Non-comparison sorts
Bead sort
Bucket sort
Burstsort: build a compact, cache efficient burst trie and then traverse it to create sorted output
Counting sort
Pigeonhole sort
Postman sort: variant of Bucket sort which takes advantage of hierarchical structure
Radix sort: sorts strings letter by letter
Selection sorts
Heapsort: convert the list into a heap, keep removing the largest element from the heap and adding it to the end of the list
Selection sort: pick the smallest of the remaining elements, add it to the end of the sorted list
Smoothsort
Other
Bitonic sorter
Pancake sorting
Topological sort
Unknown class
Samplesort
Subsequences
Further information: Subsequence
Kadane's algorithm: finds maximum sub-array of any size
Longest common subsequence problem: Find the longest subsequence common to all sequences in a set of sequences
Longest increasing subsequence problem: find the longest increasing subsequence of a given sequence
Shortest common supersequence problem: Find the shortest supersequence that contains two or more sequences as subsequences
Substrings
Further information: Substring
Longest common substring problem: find the longest string (or strings) that is a substring (or are substrings) of two or more strings
Substring search
Aho–Corasick string matching algorithm: trie based algorithm for finding all substring matches to any of a finite set of strings
Boyer–Moore string search algorithm: amortized linear (sublinear in most times) algorithm for substring search
Boyer–Moore–Horspool algorithm: Simplification of Boyer–Moore
Knuth–Morris–Pratt algorithm: substring search which bypasses reexamination of matched characters
Rabin–Karp string search algorithm: searches multiple patterns efficiently
Zhu–Takaoka string matching algorithm: a variant of the Boyer–Moore
Ukkonen's algorithm: a linear-time, online algorithm for constructing suffix trees

About us|Jobs|Help|Disclaimer|Advertising services|Contact us|Sign in|Website map|Search|

GMT+8, 2015-9-11 22:04 , Processed in 0.133287 second(s), 16 queries .

57883.com service for you! X3.1

返回顶部