<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>Nothing else. Just my life...</title>
	<atom:link href="http://www.alirizadikici.com/myBlog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.alirizadikici.com/myBlog</link>
	<description>ARZ</description>
	<pubDate>Tue, 04 Nov 2008 05:57:39 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>List of Algorithms</title>
		<link>http://www.alirizadikici.com/myBlog/?p=8</link>
		<comments>http://www.alirizadikici.com/myBlog/?p=8#comments</comments>
		<pubDate>Tue, 04 Nov 2008 05:57:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.alirizadikici.com/myBlog/?p=8</guid>
		<description><![CDATA[List of Algorithms
A complete list of all major algorithms (300), in any domain. The goal is to provide a ready to run program for each one, or a description of the algorithm. Programming languages include Java, JavaScript and PHP, C, C++ either in direct form or generated from a Scriptol source.

Automata
Artificial intelligence

Computer vision
Genetic algorithms
Neural networks


Bioinformatics
Compression

Lossless [...]]]></description>
			<content:encoded><![CDATA[<h1>List of Algorithms</h1>
<p>A complete list of all major algorithms (300), in any domain. The goal is to provide a ready to run program for each one, or a description of the algorithm. Programming languages include Java, JavaScript and PHP, C, C++ either in direct form or generated from a Scriptol source.</p>
<ul>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Automata">Automata</a></li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Artificial-intelligence">Artificial intelligence</a>
<ul>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Computer-vision">Computer vision</a></li>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Genetic">Genetic algorithms</a></li>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Neural-networks">Neural networks</a></li>
</ul>
</li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Bioinformatics">Bioinformatics</a></li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Compression">Compression</a>
<ul>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Lossless-compression">Lossless compression algorithms</a></li>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Lossy-compression">Lossy compression algorithms</a></li>
</ul>
</li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Cryptography">Cryptography</a></li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Geometry">Geometry</a></li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Graphs">Graphs</a></li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Graphics">Graphics</a></li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Lists">Lists, arrays and trees</a>
<ul>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Search-list">Searching</a></li>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Sort-list">Sorting</a></li>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Merge-list">Merging</a></li>
</ul>
</li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Number-theory">Mathematics</a>
<ul>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Algebra">Algebra</a></li>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Arithmetic">Arithmetic</a></li>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#logarithm">Discrete logarithm</a></li>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#factorization">Integer factorization</a></li>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#prime">Prime test</a></li>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Numerical">Numerical</a></li>
</ul>
</li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Matrix">Matrix processing</a></li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Optic">Optic</a></li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Optimization">Optimization</a></li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Parsing">Parsing</a></li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Prediction">Prediction (statistics)</a></li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Quantum">Quantum</a></li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Random-number-generator">Random number generators</a></li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Sciences">Sciences</a>
<ul>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Astronomy">Astronomy</a></li>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Medical">Medical</a></li>
</ul>
</li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Signal-processing">Signal processing</a></li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Software-engineering">Software engineering</a>
<ul>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Memory-allocation">Memory allocation</a></li>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Distributed-systems">Distributed systems</a></li>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Operating-systems">Operating systems</a> algorithms (disk, scheduling&#8230;)</li>
</ul>
</li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Texts">Texts</a>
<ul>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Searching-text">Searching</a></li>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Approximate-matching">Approximate matching</a></li>
<li class="sli"><a href="http://www.scriptol.org/list-of-algorithms.html#Word-processing">Word processing</a></li>
</ul>
</li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Utilities">Utilities</a></li>
<li><a href="http://www.scriptol.org/list-of-algorithms.html#Other">Misc</a></li>
</ul>
<p><a name="Automata"></a></p>
<h2>Automata</h2>
<ul>
<li><strong>Powerset construction</strong>. Algorithm to convert nondeterministic automaton to deterministic automaton.</li>
<li><strong>Todd-Coxeter algorithm</strong>. Procedure for generating cosets.</li>
</ul>
<h2><a name="Artificial-intelligence"></a>Artificial intelligence</h2>
<ul>
<li><strong>Alpha-beta</strong>. Alpha max plus beta min. Widely used in board games.</li>
</ul>
<p><a name="Computer-vision"></a></p>
<h3>Computer vision</h3>
<ul>
<li><strong>Epitome</strong>. Represent an image or video by a smaller one.</li>
<li><strong>Counting objects in an image</strong>. Uses the connected-component labeling algorithm to first label each object, and count then the objects.</li>
</ul>
<p><a name="Genetic"></a></p>
<h3>Genetic algorithms</h3>
<p>They uses three operator. selection (choose solution), reproduction (use choosen solutions to construct other ones), replacement (replace solution if better).</p>
<ul>
<li><strong>Fitness proportionate selection.</strong> Also known as roulette-wheel selection, is a function used for selecting solutions.</li>
<li><strong>Truncation selection.</strong> Another method for selecting solutions, ordered by fitness.</li>
<li><strong>Tournament selection. </strong>Select the best solution by a kind of tournament.</li>
<li><strong>Stochastic universal sampling. </strong>The individuals are mapped to contiguous segments of a line, such that each individual&#8217;s segment is equal in size to its fitness exactly as in roulette-wheel selection.</li>
</ul>
<p><a name="Neural-networks"></a></p>
<h3>Neural networks</h3>
<ul>
<li><strong>Hopfield net. </strong>Recurrent artificial neural network that serve as content-addressable memory systems with binary threshold units. They converge to a stable state.</li>
<li><strong>Backpropagation.</strong> Supervised learning technique used for training artificial neural networks.</li>
<li><strong>Self-organizing map (Kohonen map).</strong> Neural networks trained using unsupervised learning to produce low dimensional (2D, 3D) representation of the training samples. Good for visualizing high-dimensional data.</li>
</ul>
<h2><a name="Bioinformatics"></a>Bioinformatics</h2>
<ul>
<li><strong>Needleman-Wunsch.</strong> Performs a global alignment on two sequences, for protein or nucleotide sequences.</li>
<li><strong>Smith-Waterman. </strong>Variation of the Needleman-Wunsch.</li>
</ul>
<p><a name="Compression"></a></p>
<h2>Compression</h2>
<p><a name="Lossless-compression"></a></p>
<h3>Lossless compression algorithms</h3>
<ul>
<li><strong>Burrows-Wheeler transform</strong>. Preprocessing useful for improving lossless compression.</li>
<li><strong>Deflate</strong>. Data compression used by ZIP.</li>
<li><strong>Delta encoding</strong>. Aid to compression of data in which sequential data occurs frequently.</li>
<li><strong>Incremental encoding</strong>. Delta encoding applied to sequences of strings.</li>
<li><strong>LZW</strong>. (Lempel-Ziv-Welch). Successor of LZ78. Builds a translation table from the data to compress. Is used by the GIF graphical format.</li>
<li><strong>LZ77 and 78</strong>. The basis of further LZ variations (LZW, LZSS, &#8230;). They are both dictionary coders.</li>
<li><strong>LZMA</strong>. Short for Lempel-Ziv-Markov chain-Algorithm.</li>
<li><strong>LZO</strong>. Data compression algorithm that is focused on speed.</li>
<li><strong>PPM </strong>(Prediction by Partial Matching). Adaptive statistical data compression technique based on context modeling and prediction.</li>
<li><strong>Shannon-Fano coding.</strong> Constructs prefix codes based on a set of symbols and their probabilities.</li>
<li><strong>Truncated binary.</strong> An entropy encoding typically used for uniform probability distributions with a finite alphabet. Improve binary encoding.</li>
<li><strong>Run-length encoding</strong>. Primary compression that replaces a sequence of same code by the number of occurences.</li>
<li><strong>Sequitur</strong>. Incremental grammar inference on a string.</li>
<li><strong>EZW</strong> (Embedded Zerotree Wavelet). Progressive encoding to compress an image into a bit stream with increasing accuracy. May be lossy compression also with better results.
<ul>
<li><strong>Huffman coding</strong>. Simple lossless compression taking advantage of relative character frequencies.</li>
<li><strong>Adaptive Huffman coding</strong>. Adaptive coding technique based on Huffman coding.</li>
<li><strong>Arithmetic coding</strong>. Advanced entropy coding.</li>
<li><strong>Range encoding</strong>. Same as arithmetic coding, but looked at in a slightly different way.</li>
<li><strong>Unary coding</strong>. Code that represents a number n with n ones followed by a zero.</li>
<li><strong>Elias delta</strong>, <strong>gamma</strong>, <strong>omega</strong> coding. Universal code encoding the positive integers.</li>
<li><strong>Fibonacci coding</strong>. Universal code which encodes positive integers into binary code words.</li>
<li><strong>Golomb coding</strong>. Form of entropy coding that is optimal for alphabets following geometric distributions.</li>
<li><strong>Rice coding</strong>. Form of entropy coding that is optimal for alphabets following geometric distributions.</li>
</ul>
</li>
<h4>Entropy encoding</h4>
<p>Coding scheme that assigns codes to symbols so as to match code lengths with the probabilities of the symbols .</ul>
<p><a name="Lossy-compression"></a></p>
<h3>Lossy compression algorithms</h3>
<ul>
<li><strong>Linear predictive coding</strong>. Lossy compression by representing the spectral envelope of a digital signal of speech in compressed form.</li>
<li><strong>A-law algorithm</strong>. Standard companding algorithm.</li>
<li><strong>Mu-law algorithm</strong>. Standard analog signal compression or companding algorithm.</li>
<li><strong>Fractal compression</strong>. Method used to compress images using fractals.</li>
<li><strong>Transform coding</strong>. Type of data compression for data like audio signals or photographic images.</li>
<li><strong>Vector quantization</strong>. Technique often used in lossy data compression.</li>
<li><strong>Wavelet compression</strong>. Form of data compression well suited for image and audio compression.</li>
</ul>
<p><a name="Cryptography"></a></p>
<h2>Cryptography</h2>
<h4>Secret key (symmetric encryption)</h4>
<p>Use a secret key (or a pair of directly related keys) for both decryption and encryption.</p>
<ul>
<li><strong>Advanced Encryption Standard</strong> (AES), also known as Rijndael.</li>
<li><strong>Blowfish. </strong>Designed by Schneier as a general-purpose algorithm, intended as a replacement for the aging DE.</li>
<li><strong>Data Encryption Standard</strong> (DES), formerly DE Algorithm.</li>
<li><strong>IDEA </strong>(International Data Encryption Algorithm). Formerly IPES (Improved PES), another replacement for DES. Is used by PGP (Pretty Good Privacy). Performs transformations on data splitted in blocks, using a key.</li>
<li><strong>RC4</strong> or ARC4. Stream cipher widely-used in protocols such as SSL for Internet traffic and WEP for wireless networks.</li>
<li><a href="http://www.scriptol.org/algorithms/tiny-encryption.c" target="_parent">Tiny Encryption Algorithm</a><strong>. </strong>Easy to implement block cipher algorithme using some formulas.</li>
<li><strong>PES</strong> (Proposed Encryption Standard). Older name for IDEA.</li>
</ul>
<h4>Public key (asymmetric encryption)</h4>
<p>Use a pair of keys, designated as public key and private key. The public key encrypt the message, only the private key permits to decrypt it.</p>
<ul>
<li><strong>DSA </strong>(Digital Signature Algorithm). Generate keys with prime and random numbers. Was used by US agencies, and now public domain.</li>
<li><strong>ElGamal. </strong>Based on Diffie-Hellman, used by GNU Privacy Guard software, PGP, and other cryptographic systems.</li>
<li><strong>RSA</strong> (Rivest, Shamir, Adleman). Widely used in electronic commerce protocols. Use prime numbers.</li>
<li><strong>Diffie-Hellman (Merkle) key exchange </strong>(or exponential key exchange). Method and algorithm to share secret over an unprotected communications channel. Used by RSA.</li>
<li><strong>NTRUEncrypt.</strong> Make use of rings of polynomials with convolution multiplications.</li>
</ul>
<h4>Message digest functions</h4>
<p>A message digest is a code resulting of the encryption of a string or data of any length, processed by a hash function.</p>
<ul>
<li><strong>MD5.</strong> Used for checking ISO images of CDs or DVDs.</li>
<li><strong>RIPEMD</strong> (RACE Integrity Primitives Evaluation Message Digest). Based upon the principles of MD4 and similar to SHA-1.</li>
<li><strong>SHA-1 </strong>(Secure Hash Algorithm 1)<strong>. </strong>Most commonly used of the SHA set of related cryptographic hash functions. Was designed by the NSA agency.</li>
<li><strong>HMAC</strong>. keyed-hash message authentication.</li>
<li><strong>Tiger</strong> (TTH). Usually used in Tiger tree hashes.</li>
</ul>
<h4>Cryptographic using pseudo-random numbers</h4>
<ul>
<li>See. <a href="http://www.scriptol.org/list-of-algorithms.html#Random-number-generator">Random Number Generators</a></li>
</ul>
<h4>Techniques in cryptography</h4>
<p>Secret sharing, Secret Splitting, Key Splitting, M of N algorithms.</p>
<ul>
<li><strong>Shamir&#8217;s secret sharing scheme</strong>. This is a formula based on polynomial interpolation.</li>
<li><strong>Blakley&#8217;s secret sharing scheme</strong>. Is geometric in nature, the secret is a point in an m-dimensional space.</li>
</ul>
<p>Other techniques</p>
<ul>
<li><strong>Subset sum</strong>. Given a set of integers, does any subset sum equal zero? Used in cryptography.</li>
</ul>
<p><a name="Geometry"></a></p>
<h2>Geometry</h2>
<ul>
<li><strong>Gift wrapping</strong>. Determining the convex hull of a set of points.</li>
<li><strong>Gilbert-Johnson-Keerthi distance</strong>. Determining the smallest distance between two convex shapes.</li>
<li><strong>Graham scan.</strong> Determining the convex hull of a set of points in the plane.</li>
<li><strong>Line segment intersection</strong>. Finding whether lines intersect with a sweep line algorithm.</li>
<li><strong>Point in polygon</strong>. Tests whether a given point lies within a given.</li>
<li><a href="http://www.siggraph.org/education/materials/HyperGraph/raytrace/rayplane_intersection.htm" target="_parent"><strong>Ray/Plane intersection</strong></a>.</li>
<li><strong>Line/Triangle intersection</strong>. Particular case of Ray/Plane intersection.</li>
<li><strong>Polygonization of implicit surfaces</strong>. Approximate an implicit surface with a polygonal representation.</li>
<li><strong>Triangulation</strong>. Method to evaluate the distance to a point from angles to other points, whose distance is known.</li>
</ul>
<p><a name="Graphs"></a></p>
<h2>Graphs</h2>
<ul>
<li><strong>Bellman-Ford</strong>. Computes shortest paths in a weighted graph (where some of the edge weights may be negative).</li>
<li><strong>Dijkstra&#8217;s algorithm</strong>. Computes shortest paths in a graph with non-negative edge weights.</li>
<li><strong>Perturbation methods</strong>. An algorithm that computes a locally shortest paths in a graph.</li>
<li><strong>Floyd-Warshall</strong>. Solves the all pairs shortest path problem in a weighted, directed graph.</li>
<li><strong>Floyd&#8217;s cycle-finding</strong>. Finds cycles in iterations.</li>
<li><strong>Johnson</strong>. All pairs shortest path algorithm in sparse weighted directed graph.</li>
<li><strong>Kruskal</strong>. Finds a minimum spanning tree for a graph.</li>
<li><strong>Prim</strong>. Finds a minimum spanning tree for a graph.</li>
<li><strong>Boruvka</strong>. Finds a minimum spanning tree for a graph.</li>
<li><strong>Ford-Fulkerson</strong>. Computes the maximum flow in a graph.</li>
<li><strong>Edmonds-Karp.</strong> Implementation of Ford-Fulkerson.</li>
<li><strong>Nonblocking Minimal Spanning Switch</strong>. For a telephone exchange.</li>
<li><strong>Woodhouse-Sharp</strong>. Finds a minimum spanning tree for a graph.</li>
<li><strong>Spring based</strong>. Algorithm for graph drawing.</li>
<li><strong>Hungarian</strong>. Algorithm for finding a perfect matching.</li>
<li><strong>Coloring algorithm</strong>. Graph coloring algorithm.</li>
<li><strong>Nearest neighbour</strong>. Find nearest neighbour.</li>
<li><strong>Topological sort. </strong>Sort a directed acyclic graph in such a manner that each node comes before all nodes to which it has edges (according to directions).</li>
</ul>
<p><a name="Graphics"></a></p>
<h2>Graphics</h2>
<ul>
<li><a href="http://www.scriptol.org/algorithms/bresenham.c">Bresenham&#8217;s line algorithm</a>. Uses decision variables to plots a straight line between 2 specified points.</li>
<li><a href="http://www.refinedsoft.com/sourcecodeindex.htm" target="_parent">Landscape</a> Draw a 3D scenery.</li>
<li><strong>DDA line algorithm</strong>. Uses floating-point math to plots a straight line between 2 specified points.</li>
<li><strong>Flood fill</strong>. Fills a connected region with a color.</li>
<li><a href="http://www.greyc.ensicaen.fr/~dtschump/greycstoration/" target="_parent">Image Restoring</a>. Restore photo, improve images.</li>
<li><strong>Xiaolin Wu&#8217;s line algorithm</strong>. Line antialiasing.</li>
<li><strong>Painter&#8217;s algorithm</strong>. Detects visible parts of a 3-dimensional scenery.</li>
<li><strong>Ray tracing</strong>. Realistic image rendering.</li>
<li><strong>Phong shading</strong>. An illumination model and an interpolation method in 3D computer graphics.</li>
<li><strong>Gouraud shading</strong>. Simulate the differing effects of light and colour across the surface of a 3D object.</li>
<li><strong>Scanline rendering</strong>. Constructs an image by moving an imaginary line.</li>
<li><strong>Global illumination</strong>. Considers direct illumination and reflection from other objects.</li>
<li><strong>Interpolation</strong>. Constructing new data points such as in digital zoom.</li>
<li><a href="http://www.scriptol.org/algorithms/slope-intercept.c" target="_parent">Slope-intercept algorithm</a><strong>.</strong> It is an implementation of the slope-intercept formula for drawing a line.</li>
<li><strong>Spline interpolation</strong>. Reduces error with Runge&#8217;s phenomenon.</li>
</ul>
<h2><a name="Lists"></a></h2>
<h2>Lists, arrays and trees</h2>
<p><a name="Search-list"></a></p>
<h3>Searching</h3>
<ul>
<li><strong>Dictionary search</strong>. See predictive search.</li>
<li><strong>Selection algorithm</strong>. Finds the <em>k</em>th largest item in a list.</li>
<li><a href="http://www.scriptol.org/algorithms/binary-search.php" target="_parent">Binary search algorithm</a>. Locates an item in a sorted list.</li>
<li><strong>Breadth-first search</strong>. Traverses a graph level by level.</li>
<li><strong>Depth-first search</strong>. Traverses a graph branch by branch.</li>
<li><strong>Best-first search</strong>. Traverses a graph in the order of likely importance using a priority queue.</li>
<li><strong>A* tree search</strong>. Special case of best-first search that uses heuristics to improve speed.</li>
<li><strong>Uniform-cost search</strong>. A tree search that finds the lowest cost route where costs vary.</li>
<li><strong>Predictive search</strong>. Binary like search which factors in magnitude of search term versus the high and low values in the search.</li>
<li><strong>Hash table</strong>. Associate keys to items in an unsorted collection, to retrieve them in a linear time.</li>
<li><strong>Interpolated search</strong>. See predictive search.</li>
</ul>
<p> </p>
<p><a name="Sort-list"></a></p>
<h3>Sorting</h3>
<ul>
<li><strong>Binary tree sort. </strong>Sort of a binary tree, incremental, similar to insertion sort.</li>
<li><strong>Bogosort. </strong>Inefficient random sort of a desk card.</li>
<li><a href="http://www.scriptol.org/bubble-sort.sol" target="_parent">Bubble sort</a>. For each pair of indices, swap the items if out of order.</li>
<li><strong>Bucket sort.</strong> Split a list in buckets and sort them individually. Generalizes pigeonhole sort.</li>
<li><a href="http://www.scriptol.org/algorithms/cocktail-sort.c" target="_parent">Cocktail sort</a> (or bidirectional bubble, shaker, ripple, shuttle, happy hour sort). Variation of bubble sort that sorts in both directions each pass through the list.</li>
<li><a href="http://www.scriptol.org/algorithms/comb-sort.c" target="_parent">Comb sort</a><strong>.</strong> Efficient variation of bubble sort that eliminates &#8220;turtles&#8221;, the small values near the end of the list and makes use of gaps bewteen values.</li>
<li><strong>Counting sort.</strong> It uses the range of numbers in the list A to create an array B of this length. Indexes in B are used to count how many elements in A have a value less than i.</li>
<li><a href="http://www.scriptol.org/algorithms/gnome-sort.c" target="_parent">Gnome sort</a><strong>. </strong>Similar to insertion sort except that moving an element to its proper place is accomplished by a series of swaps, as in bubble sort.</li>
<li><strong>Heapsort</strong>. Convert the list into a heap, keep removing the largest element from the heap and adding it to the end of the list.</li>
<li><a href="http://www.scriptol.org/algorithms/insertion-sort.c" target="_parent">Insertion sort</a>. Determine where the current item belongs in the list of sorted ones, and insert it there.</li>
<li><strong>Merge sort</strong>. Sort the first and second half of the list separately, then merge the sorted lists.</li>
<li><strong>Pancake sort.</strong> Reverse elements of some prefix of a sequence.</li>
<li><strong>Pigeonhole sort.</strong> Fill an empty array with all elements of an array to be sorted, in order.</li>
<li><strong>Postman sort.</strong> Hierarchical variant of bucket sort, used by post offices.</li>
<li><a title="Quicksort" href="http://www.scriptol.org/qsort.sol" target="_parent">Quicksort</a>. 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.</li>
<li><strong>Radix sort</strong>. Sorts keys associated to items to sort.</li>
<li><strong>Selection sort</strong>. Pick the smallest of the remaining elements, add it to the end of the sorted list.</li>
<li><strong>Shell sort</strong>. Improves insertion sort with use of gaps between values.</li>
<li><strong>Smoothsort.</strong> See heapsort.</li>
<li><strong>Stochastic sort. </strong>See bogosort.</li>
</ul>
<p><a name="Merge-list"></a></p>
<h3>Merging</h3>
<ul>
<li><strong>Simple Merge</strong>. Merge n sorted streams into one output stream. All the stream heads are compared, and the head with the least key is removed and written to the output.</li>
<li><strong>k-way Merge sort (or p-way</strong>. A merge sort that sorts a data stream using repeated merges.</li>
</ul>
<p><a name="Number-theory"></a></p>
<h2>Mathematics</h2>
<h3><a name="Algebra"></a>Algebra</h3>
<ul>
<li><strong>Buchberger&#8217;s algorithm</strong>. Finds a Gräbner basis.</li>
<li><strong>Extended Euclidean algorithm</strong>. Solves the equation ax+by= c.</li>
<li><strong>Fourier transform multiplication. </strong>For very big numbers, computing the fast Fourier transforms for two numbers, and multiplying the two results entry by entry.</li>
<li><strong>Gram-Schmidt process</strong>. Orthogonalizes a set of vectors.</li>
<li><strong>Gauss-Jordan elimination</strong>. Solves systems of linear equations.</li>
<li><strong>Karatsuba multiplication</strong>. Recursive algorithm efficient for big numbers. Derived from the Toom-Cook method.</li>
<li><strong>Knuth-Bendix completion</strong>. For rewriting rule systems.</li>
<li><strong>Multivariate division</strong>. For polynomials in several indeterminates.</li>
<li><strong>Risch algorithm</strong>. Translates indefinite integral to algebraic problem.</li>
<li><strong>Toom-Cook</strong> (Toom3). Splits each number to be multiplied into multiple parts.</li>
</ul>
<h4>Eigenvalue algorithm</h4>
<p>Algorithms to find the Eigenvalue and/or Eigenvector of a matrix.<strong></strong></p>
<ul>
<li><strong>QR algorithm.</strong> A popular method based on the QR decomposition.</li>
<li><strong>Inverse iteration</strong>. Iterative eigenvalue algorithm.</li>
<li><strong>Rayleigh quotient iteration</strong>. Extends the principle of the inverse iteration by using the Rayleigh quotient to obtain increasingly accurate eigenvalue estimates.</li>
<li><strong>Arnoldi iteration</strong>. Compute the eigenvalues of the orthogonal projection of A onto the Krylov subspace.</li>
<li><strong>Lanczos iteration</strong>. Method to find a zero vector in the process of the quadratic sieve.</li>
<li><strong>Jacobi method</strong>. Numerical procedure for the calculation of all eigenvalues and eigenvectors of a real symmetric. matrix</li>
<li><strong>Bisection</strong>.</li>
<li><strong>Divide-and-conquer</strong>. Apply to real symmetric matrices.</li>
</ul>
<p>Eigenvector algorithms</p>
<ul>
<li><strong>Richardson eigenvector algorithm</strong>.</li>
<li><strong>Max-Plus</strong>. Eigenvector algorithm for nonlinear H 1 control.</li>
<li><strong>Abrams and Lloyd eigenvector algorithm</strong>.</li>
</ul>
<h3><a name="Arithmetic"></a>Arithmetic</h3>
<ul>
<li><a href="http://www.scriptol.org/algorithms/gcd.sol" target="_parent">Binary GCD algorithm</a>. Efficient way of calculating greatest common divisor.</li>
<li><strong>Booth&#8217;s multiplication.</strong> Multiply two signed numbers in two&#8217;s complement notation.</li>
<li><strong>Euclidean algorithm</strong>. Computes the greatest common divisor.</li>
<li><strong>Binary multiplication</strong> (Peasant or Egyptian multiplication). Decomposes the larger multiplicand into a sum of powers of two and creates a table of doublings of the second multiplicand.</li>
</ul>
<h3><a name="logarithm"></a>Discrete logarithm in group theory</h3>
<ul>
<li><strong>Baby-step giant-step. </strong>This is a series of well defined steps to compute the discrete logarithm.</li>
<li><strong>Pollard&#8217;s rho algorithm for logarithms. </strong>Analogous to Pollard&#8217;s rho algorithm for integer factorization but solves the discrete logarithm problem.</li>
<li><strong>Pohlig-Hellman algorithm.</strong> Solves the problem for a multiplicative group whose order is a smooth integer. Based on the Chinese remainder theorem and runs in polynomial time.</li>
<li><strong>Index calculus algorithm. </strong>Best known algorithm for certain groups, as the multiplicative group modulo m.</li>
</ul>
<h3><a name="factorization"></a>Integer factorization</h3>
<p>Breaking an integer into its prime factors . Also named prime factorization.</p>
<ul>
<li><strong>Fermat&#8217;s factorization method. </strong>A representation of an odd integer as the difference of two squares.</li>
<li><strong>Trial division. </strong>The simplest of the integer factorization algorithms. Try to divide the integer n by every prime number.</li>
<li><strong>Lenstra elliptic curve factorization </strong>or elliptic curve factorization method (ECM). Fast, sub-exponential running time, employs elliptic curves.</li>
<li><strong>Pollard&#8217;s rho . </strong>Variation of Pollard&#8217;s p-1 that is effective at splitting composite numbers with small factors.</li>
<li><strong>Pollard&#8217;s p-1. </strong>A special-purpose algorithm, that is only suitable for integers with specific types of factors.</li>
<li><strong>Congruence of squares. </strong>Finding a congruence of squares modulo n is a mean to to factor the integer n.</li>
<li><strong>Quadratic sieve. </strong>Uses the idea of Dixon&#8217;s method. It is a general-purpose algorithm that is simpler than the number field sieve and the fastest for integers under 100 decimal digits.</li>
<li><strong>Dixon&#8217;s factorization method. </strong>General-purpose integer factorization algorithm.</li>
<li><strong>Special number field sieve. </strong>Special-purpose algorithm ideal for Fermat numbers.</li>
<li><strong>General number field sieve </strong>(GNS). Derived from special number field sieve. Efficient algorithm known for factoring big integers. Uses steps to factor the integer.</li>
</ul>
<h3><a name="prime"></a>Prime test</h3>
<p>Determining whether a given number is prime.</p>
<ul>
<li><strong>AKS primality test</strong> (Agrawal-Kayal-Saxena). The first published algorithm to be simultaneously polynomial, deterministic, and unconditional. Generalization of Fermat&#8217;s theorem, extended to polynomials.</li>
<li><strong>Fermat primality test.</strong> Rely on an equality or set of equalities that hold true for prime values, and then see whether or not they hold for the number to test.</li>
<li><strong>Miller-Rabin primality test. </strong>Similar to the Fermat primality test. Unconditional probabilistic algorithm.</li>
<li><a href="http://www.scriptol.org/sieve.php" target="_parent">Sieve of Eratosthenes</a><strong>.</strong> Ancient algorithm for finding all prime numbers up to a specified integer.</li>
<li><strong>Sieve of Atkin. </strong>Optimized version of the sieve of Eratosthenes.</li>
<li><strong>Solovay-Strassen primality test.</strong> Same principle as the Fermat test.<strong></strong></li>
</ul>
<p><a name="Numerical"></a></p>
<h3>Numerical</h3>
<ul>
<li><a href="http://www.scriptol.org/fibonacci-any-programming-language.html" target="_parent">Fibonacci</a>. Calculating the sequence of Fibonacci.</li>
<li><strong>Biconjugate gradient method</strong>. Solves systems of linear equations.</li>
<li><strong>Dancing Links</strong>. Finds all solutions to the exact cover problem.</li>
<li><strong>De Boor algorithm</strong>. Computes splines.</li>
<li><strong>De Casteljau&#8217;s algorithm</strong>. Computes Bezier curves.</li>
<li><strong>False position method</strong>. Approximates roots of a function.</li>
<li><strong>Gauss-Legendre</strong>. Computes the digits of pi.</li>
<li><strong>Kahan summation</strong>. A more accurate method of summing floating-point numbers.</li>
<li><strong>MISER</strong>. Monte Carlo simulation, numerical integration.</li>
<li><strong>Newton&#8217;s method</strong>. Finds zeros of functions with calculus.</li>
<li><strong>Rounding functions</strong>. The classic ways to round numbers.</li>
<li><strong>Secant method</strong>. Approximates roots of a function.</li>
<li><strong>Shifting nth-root</strong>. Digit by digit root extraction.</li>
<li><strong>Square root</strong>. Approximates the square root of a number.</li>
<li><strong>Borwein&#8217;s algorithm</strong>. Calculates the value of 1/e.</li>
<li><strong>Metropolis-Hastings</strong>. Generate a sequence of samples from the probability distribution of one or more variables.</li>
</ul>
<h2><a name="Matrix"></a>Matrix processing</h2>
<ul>
<li><strong>Exponentiating by squaring</strong>. Quickly computes powers of numbers and matrices.</li>
<li><strong>Rutishauser. </strong>Algorithm for tridiagonalizing banded matrices. Uses the standard chasing step.</li>
<li><strong>Strassen algorithm</strong>. Faster matrix multiplication.</li>
<li><strong>Symbolic Cholesky decomposition</strong>. Efficient way of storing sparse matrix.</li>
<li><strong>Zha&#8217;s algorithm</strong>. For tridiagonalizing arrowhead matrices, improves Rutishauser.</li>
<li><strong>Matrix chain multiplication. </strong>Given a sequence of matrices, we want to find the most efficient way to multiply these matrices together using dynamic programming (not to perform the multiplication).</li>
</ul>
<p><a name="Optic"></a></p>
<h2>Optic</h2>
<ul>
<li><strong>Gerchberg Saxton</strong>. algorithm for the determination of the phase from image and diffraction plane pictures.</li>
</ul>
<p><a name="Optimization"></a></p>
<h2>Optimization</h2>
<ul>
<li><strong>Ant colony optimization. </strong>Probabilistic technique for solving problems which can be reduced to finding good paths through graphs.</li>
<li><strong>BFGS </strong>(Broyden-Fletcher-Goldfarb-Shanno method). Solves a unconstrained nonlinear optimization problem.</li>
<li><strong>Branch and bound. </strong>Method to find optimal solutions of discrete and combinatorial optimization problems.</li>
<li><strong>Conjugate gradient method. </strong>Iterative algorithm for the numerical solution of systems of linear equations, whose matrix is symmetric and positive definite.</li>
<li><strong>DE </strong>(Differential evolution)<strong>. </strong>Solve the Chebyshev polynomial fitting problem.</li>
<li><strong>Evolution strategy. </strong>Technique based on ideas of adaptation and evolution. Operators are. mating selection, recombination, mutation, fitness function evaluation, and environmental selection.</li>
<li><strong>Gauss-Newton</strong>. An algorithm for solving nonlinear least squares problems.</li>
<li><strong>Gradient descent. </strong>Approaches a local minimum of a function by taking steps proportional to the negative of the gradient (or the approximate gradient) of the function at the current point.</li>
<li><strong>Gradient ascent. </strong>Approaches a local maximum of a function, as gradient descent but one takes steps proportional to the gradient.</li>
<li><strong>Levenberg-Marquardt</strong>. Numerical solution to the problem of minimizing a sum of squares of several, generally nonlinear functions that depend on a common set of parameters.</li>
<li><strong>Line search.</strong> Iterative approaches to find a local minimum of an objective function in unconstrained optimization.</li>
<li><strong>Local search. </strong>Metaheuristic for solving hard optimization problems as maximizing a criterion among a number of candidate solutions.</li>
<li><strong>Nelder-Mead method</strong> (downhill simplex method). A nonlinear optimization algorithm.</li>
<li><strong>Newton&#8217;s method in optimization. </strong>The same algorithm to find roots of equations in one or more dimensions can also be used to find local maxima and local minima of functions.</li>
<li><strong>PSO, Particle swarm optimization. </strong>Swarm intelligence modeled by particles in multidimensional space that have a position and a velocity.</li>
<li><strong>Random-restart hill climbing. </strong>Meta-algorithm built on top of the hill climbing optimization algorithm.</li>
<li><strong>Simplex algorithm</strong>. An algorithm for solving the linear programming problem</li>
<li><strong>Simulated annealing. </strong>Generic probabilistic meta-algorithm for the global optimization problem, inspirated by annealing in metallurgy.</li>
<li><strong>Steepest descent. </strong>see gradient descent.</li>
<li><strong>Stochastic tunneling.</strong> Approach to minimize a function based on the Monte Carlo method-sampling.</li>
<li><strong>Tabu search. </strong>optimization method of search algorithm by using memory structures.</li>
<li><strong>Trust search.</strong> Another iterative approaches to find a local minimum of an objective function in unconstrained optimization.</li>
</ul>
<p><a name="Parsing"></a></p>
<h2>Parsing</h2>
<ul>
<li><strong>CYK (Cocke-Younger-Kasami)</strong>. An efficient O(n<sup>3</sup>) algorithm for parsing any CNF context-free grammar.</li>
<li><strong>Earley&#8217;s algorithm</strong>. A chart parser, O(n<sup>3</sup>) algorithm for parsing any context-free grammar.</li>
<li><strong>Inside-outside</strong>. An O(n<sup>3</sup>) algorithm for re-estimating production probabilities in probabilistic context-free grammars.</li>
</ul>
<h4>LL Parsers</h4>
<p>Parse a LL context-free grammar top-down from left to right. <br />
Such as <a href="http://www.antlr.org/" target="_parent">ANTLR</a> that is LL(*).</p>
<h4>LR Parsers</h4>
<p>Bottom-up parsers for context-free grammars.</p>
<ul>
<li><strong>Dijkstra&#8217;s shunting yard algorithm</strong> is commonly used to implement operator precedence parsers which convert from infix notation to Reverse Polish notation (RPN).</li>
<li><strong>LALR (Look-ahead LR).</strong> With a one-token look-ahead. Yacc/Bison use LALR(1)</li>
<li><strong>SLR (Simple LR) parser. </strong>An LR(0) modified to prevent shift-reduce and reduce-reduce conflits. Remains inferior to LR(1).</li>
<li><strong>Canonical LR parser</strong> or LR(1) parser. Has a look-ahead of one token.</li>
<li><strong>GLR. </strong>(Generalyzed LR parser) by Masaru Tomita. An extension of an LR to handle nondeterministic or ambiguous grammars. It is efficient to parse natural language.</li>
</ul>
<h4>Recursive Descent Parsers</h4>
<p>Top-down parsers built from a set of mutually-recursive procedures that represent the production rules of the grammar.</p>
<ul>
<li><strong>Packrat parser</strong>. A linear time parsing algorithm supporting context-free LL(k) grammars. Use backup and memoization (remembering its choices) to avoid non-termination.</li>
</ul>
<h2><a name="Prediction"></a>Prediction (statistics)</h2>
<ul>
<li><strong>Baum-Welch. </strong>Finds the unknown parameters of a Hidden Markov Model (HMM). It makes use of the forward-backward algorithm.</li>
<li><strong>Viterbi.</strong> Calculates the <em>Viterbi path</em>, a sequence of states that is most luckily to appear in a sequence of event.</li>
</ul>
<p><a name="Quantum"></a></p>
<h2>Quantum</h2>
<p><em><small>Application of quantum computation to various categories of problems</small></em></p>
<ul>
<li><strong>Grover&#8217;s algorithm</strong>. Provides quadratic speedup for many search problems.</li>
<li><strong>Shor&#8217;s algorithm</strong>. Provides exponential speedup for factorizing a number.</li>
<li><strong>Deutsch-Jozsa</strong>. Criterion of balance for Boolean function.</li>
</ul>
<p><a name="Random-number-generator"></a></p>
<h2>(Pseudo) Random number generators</h2>
<ul>
<li><strong>Blum Blum Shub.</strong> Based on a formula on prime numbers.</li>
<li><strong>Mersenne twister.</strong> By Matsumoto Nishimura, fast and with high period.</li>
<li><strong>Lagged Fibonacci generator. </strong>Improvement of Linear congruential generator, uses the Fibonacci sequence.</li>
<li><strong>Linear congruential generator.</strong> One of oldest, not the best, use three numbers to generate a sequence.</li>
<li><strong>Yarrow algorithm. </strong>By Bruce Schneier, John Kelsey, and Niels Ferguson. Cryptographically secure pseudorandom numbers generator, can also be used as a real random number generator, accepting random inputs from analog random sources.</li>
<li><strong>Fortuna.</strong> Allegedly an improvement on Yarrow algorithm.</li>
<li><strong>Linear feedback shift register. </strong>A shift register whose input bit is a linear function of its previous state. The first state is the seed.</li>
</ul>
<p><a name="Sciences"></a></p>
<h2>Sciences</h2>
<h3><a name="Astronomy"></a>Astronomy</h3>
<ul>
<li><strong>Ephemerides</strong>.</li>
<li><strong>Positions of Moon</strong> or other celestial objects.</li>
<li><strong>Julian day. </strong>Number of days that have elapsed since Monday, January 1, 4713 BC in the proleptic Julian calendar. The algorithm is a formula. Variations are: heliocentric, chronological, modified, reduced, truncated, Dublin Lilian julian day.</li>
<li><strong>Julian date</strong>. The Julian day, not rounded, decimal fraction.</li>
</ul>
<h3><a name="Medical"></a>Medical</h3>
<ul>
<li>Computation useful in healthcare.</li>
<li>Help to diagnosis.</li>
</ul>
<p><a name="Signal-processing"></a></p>
<h2>Signal processing</h2>
<ul>
<li><strong>CORDIC</strong>. Fast trigonometric function computation technique.</li>
<li><strong>Rainflow-counting algorithm</strong>. Reduces a complex stress history to a count of elementary stress-reversals for use in fatigue analysis.</li>
<li><strong>Osem</strong>. Algorithm for processing of medical images.</li>
<li><strong>Goertzel algorithm.</strong> Can be used for DTMF digit decoding.</li>
<li><strong>Discrete Fourier transform</strong>. Determines the frequencies contained in a (segment of a) signal.
<ul>
<li><strong>Fast Fourier transform</strong></li>
<li><strong>Cooley-Tukey FFT</strong></li>
<li><strong>Rader&#8217;s FFT</strong></li>
<li><strong>Bluestein&#8217;s FFT</strong></li>
<li><strong>Bruun&#8217;s FFT</strong></li>
<li><strong>Prime-factor FFT</strong></li>
</ul>
</li>
<li><strong>Richardson-Lucy deconvolution</strong>. Image de-blurring algorithm.</li>
<li><strong>Elser Difference-Map</strong>. X-Ray diffraction microscopy.</li>
</ul>
<p><a name="Software-engineering"></a></p>
<h2>Software engineering</h2>
<ul>
<li><strong>Algorithms for Recovery and Isolation Exploiting Semantics</strong>. Recovery.</li>
<li><strong>Unicode Collation. </strong>Provides a standard way to put names, words or strings of text in sequence.</li>
<li><strong>CHS conversion</strong>. Converting between disk addressing systems.</li>
<li><strong>Cyclic redundancy check</strong>. Calculation of a check word.</li>
<li><strong>Parity control</strong>. Simple/fast error detection technique. Is a number even or odd?</li>
</ul>
<p><a name="Memory-allocation"></a></p>
<h3>Memory allocation</h3>
<ul>
<li><strong>Boehm garbage collector</strong>. Conservative garbage collector.</li>
<li><strong>Buddy memory allocation</strong>. Algorithm to allocate memory such that fragmentation is less.</li>
<li><strong>Generational garbage collector</strong>. Fast garbage collectors that segregate memory by age.</li>
<li><strong>Mark and sweep.</strong></li>
<li><strong>Reference counting. </strong>Simple memory manager that counts links to data and reclaims the space when the count is zero.</li>
</ul>
<p><a name="Distributed-systems"></a></p>
<h3>Distributed systems</h3>
<ul>
<li><strong>Lamport ordering</strong>. A partial ordering of events based on the <em>happened-before</em> relation.</li>
<li><strong>Snapshot</strong>. A snapshot is the process of recording the global state of a system.</li>
<li><strong>Vector clocks</strong>. A total ordering of events.</li>
<li><strong>Marzullo</strong>. Distributed clock synchronization.</li>
<li><strong>Intersection</strong>. Another clock agreement algorithm.</li>
</ul>
<p><a name="Operating-systems"></a></p>
<h3>Operating systems algorithms</h3>
<ul>
<li><strong>Banker</strong>. Algorithm used for deadlock avoidance.</li>
<li><strong>Page replacement</strong>. Selecting the victim page under low memory conditions.</li>
<li><strong>Bully</strong>. Selecting new leader among many computers.</li>
</ul>
<h4><strong>Disk scheduling algorithms.</strong></h4>
<ul>
<li><strong>Elevator</strong>. Disk scheduling algorithm that works like an elevator.</li>
<li><strong>Shortest seek first</strong>. Disk scheduling algorithm to reduce seek time.</li>
</ul>
<h4>Process synchronisation algorithms.</h4>
<ul>
<li><strong>Peterson.</strong> Allows two processes to share a single-use resource without conflict, using shared memory for communication. Can be generalized.</li>
<li><strong>Lamport&#8217;s Bakery algorithm.</strong> Improve the robustness of multiple thread-handling processes by means of mutual exclusion.</li>
<li><strong>Dekker. </strong>Another concurrent programming algorithm, as the Peterson&#8217;s one.</li>
</ul>
<h4>Scheduling algorithms</h4>
<ul>
<li><strong>Earliest deadline first scheduling. </strong>When an event occurs (end of task, new task released, etc.) the queue will be searched for the process closest to its deadline.</li>
<li><strong>Fair-share scheduling. </strong>Sharing cpu time between groups and users in groups. Another algorithm is called recursively to manage sharing of processes.</li>
<li><strong>Least slack time scheduling </strong>or <strong>Least Laxity First</strong>. Assigns priority based on the slack time (difference between the deadline, ready and run time) of a process.</li>
<li><strong>List scheduling. </strong>From an ordered list of processes with priorities, assign first to highest priority the available resources. Possible strategies: critical path, longest path, highest level first, longest processing time.</li>
<li><strong>Multi level feedback queue.</strong></li>
<li><strong>Rate-monotonic scheduling. </strong>Optimal, preemptive, static-priority scheduling algorithm. Priority given in rate monotonic principle (first deadline is first processed).</li>
<li><strong>Round-Robin scheduling. </strong>Simplest algorithm, assigns time slices to each process without priority.</li>
<li><strong>Shortest job next (or first).</strong> Executes next the waiting process with the smallest execution time, is non-preemptive.</li>
<li><strong>Shortest remaining time. </strong>A version of shortest job next scheduling that terminates the running process before to choose another task.</li>
</ul>
<p><a name="Texts"></a></p>
<h2>Texts</h2>
<p><a name="Searching-text"></a></p>
<h3>Searching</h3>
<ul>
<li><strong>Aho-Corasick. </strong>Search in a text by building a table from words.</li>
<li><strong>Bitap (or shift-or, shift-and, Baeza-Yates-Gonnet). </strong>Fuzzy string searching algorithm developed by Udi Manber and Sun Wu.</li>
<li><strong>Boyer-Moore string search. </strong>Search in text by skipping sub-string not containing letters in the searched input.</li>
<li><strong>Knuth-Morris-Pratt. </strong>Build a table when searching to skip sub-string.</li>
<li><strong>Rabin-Karp string search. </strong>Use hashing for multiple searches.</li>
<li><strong>Longest common subsequence problem</strong>. Haskell&#8217;s algorithm. Of two sequences.</li>
<li><strong>Longest increasing subsequence problem. </strong>Of two sequences. It also reduces to find the longest path in a directed acyclic graph.</li>
<li><strong>Shortest common supersequence</strong>. Of two sequences.</li>
<li><strong>Horspool</strong>. Simplification of the Boyer-Moore algorithm. O(mn).</li>
</ul>
<p><a name="Approximate-matching"></a></p>
<h3>Approximate matching</h3>
<ul>
<li><strong>Levenshtein</strong> <strong>distance (or edit distance).</strong> Minimum number of operations (insertion, deletion, replacement) needed to transform one string into the other.</li>
<li><strong>Soundex. </strong>Phonetic algorithm for indexing words by their sound (in English).</li>
<li><strong>Metaphone</strong>. Indexing words by their sound (in English).</li>
<li><strong>NYSIIS</strong>. (New York State Identification and Intelligence System). Phonetic algorithm that improves soundex.</li>
</ul>
<h3><a name="Word-processing"></a>Word processing</h3>
<ul>
<li><strong>Stemming</strong>. A method of reducing words to their stem, or root form.</li>
</ul>
<h2><a name="Utilities"></a>Utilities</h2>
<ul>
<li><a href="http://www.scriptol.org/dow.sol" target="_parent">Doomsday</a>. Day of the week.</li>
<li><a href="http://www.scriptol.org/algorithms/xorswap.c">Xor swap</a>. Swaps the values of two variables without using a buffer by xoring the values.</li>
<li><strong>Hamming weight</strong>. Find the number of 1 bits in a binary word.</li>
<li><strong>Luhn</strong>. A checksum formula for validating identification numbers such as credit-card numbers.</li>
<li><strong>Create bit mask</strong>. Bit manipulation algorithms.</li>
</ul>
<p><a name="Other"></a></p>
<h2>Misc.</h2>
<ul>
<li><strong>Hypertext Induced Topic Selection</strong> (HITS). Algorithm for scoring Web pages, by Jon Kleiberg. One score depends upon backlinks, the other one is based on external links.</li>
<li><strong>PageRank</strong>. Algorithm of scoring by Google, using backlinks and external links. The score of a Web page depends also to various other criteria.</li>
<li><strong>Schreier-Sims.</strong> For permutation groups. A method of computing a Base and Strong Generating Set (BSGS) of a permutation group. Used by algebra algorithms.</li>
<li><strong>Robinson-Schensted</strong>. Combinatorial algorithm.</li>
</ul>
<p><strong>Links</strong></p>
<ul>
<li>The <a href="http://www.dmoz.org/Computers/Algorithms/" target="_parent">directory of algorithms</a> at dmoz.org.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.alirizadikici.com/myBlog/?feed=rss2&amp;p=8</wfw:commentRss>
		</item>
		<item>
		<title>10 Really Cool Iconsets for Ubuntu/Gnome</title>
		<link>http://www.alirizadikici.com/myBlog/?p=3</link>
		<comments>http://www.alirizadikici.com/myBlog/?p=3#comments</comments>
		<pubDate>Sun, 31 Aug 2008 08:34:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Gnome]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Technical]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<category><![CDATA[Icon Sets]]></category>

		<guid isPermaLink="false">http://www.alirizadikici.com/myBlog/?p=3</guid>
		<description><![CDATA[Original Post is here.
You can spice up the look of your GNOME desktop by putting on a killer theme and match it with really cool Linux wallpaper. To greatly enhance its appearance, you will also need some equally good-looking set of icons.
I’m going to share to you some of my favorite set of icons. These [...]]]></description>
			<content:encoded><![CDATA[<p>Original Post is <a title="Go to original post." href="http://www.junauza.com/2008/08/10-really-cool-icon-sets-for.html" target="_self">here</a>.</p>
<p>You can spice up the look of your GNOME desktop by putting on a killer theme and match it with really cool <a href="http://www.junauza.com/2008/02/25-coolest-linux-wallpapers.html">Linux wallpaper</a>. To greatly enhance its appearance, you will also need some equally good-looking set of icons.</p>
<p>I’m going to share to you some of my favorite set of icons. These are specifically made for Ubuntu, as well as any other Linux distro with a GNOME desktop. So here they are:<br />
1. <span style="font-weight: bold;">Black White 2 Style</span></p>
<div style="text-align: center;"><a href="http://2.bp.blogspot.com/_UqUwVPikChs/SLWQy0ejOPI/AAAAAAAAE6Q/pyo1NGAkfm4/s1600-h/black-white2Style.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5239252944270080242" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_UqUwVPikChs/SLWQy0ejOPI/AAAAAAAAE6Q/pyo1NGAkfm4/s320/black-white2Style.jpg" border="0" alt="" /></a><a href="http://www.deviantart.com/download/73276755/black_white_2_Style_by_DBGtheKafu.tar"><span style="font-size: 85%;">Click here to Download</span></a></div>
<p>2. <span style="font-weight: bold;">Area o.42</span></p>
<div style="text-align: center;"><a href="http://3.bp.blogspot.com/_UqUwVPikChs/SLWQzN4PfhI/AAAAAAAAE6g/dwV_O6IR3-A/s1600-h/area+o.42.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5239252951088725522" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_UqUwVPikChs/SLWQzN4PfhI/AAAAAAAAE6g/dwV_O6IR3-A/s320/area+o.42.png" border="0" alt="" /></a><a href="http://www.gnome-look.org/CONTENT/content-files/78259-area042ELEGANT.tar.bz2"><span style="font-size: 85%;">Click here to Download</span></a></div>
<p>3. <span style="font-weight: bold;">Kamel</span></p>
<div style="text-align: center;"><a href="http://2.bp.blogspot.com/_UqUwVPikChs/SLWQya61ObI/AAAAAAAAE6A/8WKpEiNB3gI/s1600-h/kamel.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5239252937409378738" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_UqUwVPikChs/SLWQya61ObI/AAAAAAAAE6A/8WKpEiNB3gI/s320/kamel.jpg" border="0" alt="" /></a><a href="http://www.gnome-look.org/CONTENT/content-files/59006-Kamel-alpha-0.3.tar.gz"><span style="font-size: 85%;">Click here to Download</span></a></div>
<p>4. <span style="font-weight: bold;">Somatic</span></p>
<div style="text-align: center;"><a href="http://3.bp.blogspot.com/_UqUwVPikChs/SLWQyjC5noI/AAAAAAAAE6I/9PnVazZB3Nw/s1600-h/somatic.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5239252939590704770" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_UqUwVPikChs/SLWQyjC5noI/AAAAAAAAE6I/9PnVazZB3Nw/s320/somatic.png" border="0" alt="" /></a><a href="http://www.mibhouse.org/pokemon_jojo/public/files/ICON-Somatic-0.2.tar.gz"><span style="font-size: 85%;">Click here to Download</span></a></div>
<p>5. <span style="font-weight: bold;">Buuf Deuce</span></p>
<div style="text-align: center;"><a href="http://1.bp.blogspot.com/_UqUwVPikChs/SLWQy8vOpDI/AAAAAAAAE6Y/n2Z40ctN9n8/s1600-h/BuuF-Deuce.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5239252946487518258" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_UqUwVPikChs/SLWQy8vOpDI/AAAAAAAAE6Y/n2Z40ctN9n8/s320/BuuF-Deuce.jpg" border="0" alt="" /></a><a href="http://www.deviantart.com/download/73339997/Gnome_Buuf_Deuce_1_0_r8_by_djany.zip"><span style="font-size: 85%;">Click here to Download</span></a></div>
<p>6. <span style="font-weight: bold;">Square Dock</span></p>
<div style="text-align: center;"><a href="http://4.bp.blogspot.com/_UqUwVPikChs/SLWRa5YtGlI/AAAAAAAAE6o/fNzN1lBpQS4/s1600-h/square_dock.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5239253632782506578" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_UqUwVPikChs/SLWRa5YtGlI/AAAAAAAAE6o/fNzN1lBpQS4/s320/square_dock.png" border="0" alt="" /></a><span style="font-size: 85%;"><a href="http://www.deviantart.com/download/74277327/SQUARE_DOCK_0_1_by_Mandarancio.zip">Click here to Download</a><br />
</span></p>
<div style="text-align: left;">7.  <span style="font-weight: bold;">Black White 2 Gloss</span></div>
</div>
<div style="text-align: center;"><a href="http://2.bp.blogspot.com/_UqUwVPikChs/SLWRbF_2zxI/AAAAAAAAE6w/5rLhEK66Gfg/s1600-h/black-white2-gloss.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5239253636167946002" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_UqUwVPikChs/SLWRbF_2zxI/AAAAAAAAE6w/5rLhEK66Gfg/s320/black-white2-gloss.jpg" border="0" alt="" /></a><a href="http://www.deviantart.com/download/73274930/black_white_2_Gloss_by_DBGtheKafu.tar"><span style="font-size: 85%;">Click here to Download</span></a></div>
<p>8. <span style="font-weight: bold;">SnowIsh</span></p>
<div style="text-align: center;"><a href="http://1.bp.blogspot.com/_UqUwVPikChs/SLWRbXFYUuI/AAAAAAAAE64/CWkQM4K_d-E/s1600-h/snowish.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5239253640754516706" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_UqUwVPikChs/SLWRbXFYUuI/AAAAAAAAE64/CWkQM4K_d-E/s320/snowish.png" border="0" alt="" /></a><a href="http://nuovext.pwsp.net/snowish/files/SnowIsh-1.0_PNG.tar.bz2"><span style="font-size: 85%;">Click here to Download</span></a></div>
<p>9. <span style="font-weight: bold;">Amora</span></p>
<div style="text-align: center;"><a href="http://2.bp.blogspot.com/_UqUwVPikChs/SLWRbeMFMEI/AAAAAAAAE7A/ZdJvyEIIuww/s1600-h/amora.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5239253642661670978" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_UqUwVPikChs/SLWRbeMFMEI/AAAAAAAAE7A/ZdJvyEIIuww/s320/amora.png" border="0" alt="" /></a><a href="http://www.esnips.com/doc/c9e8e25a-ae58-4505-ac3f-387d8ad18188/Amora-0.4.1.tar"><span style="font-size: 85%;">Click here to Download</span></a></div>
<p>10.  <span style="font-weight: bold;">AllBlack</span></p>
<div style="text-align: center;"><a href="http://3.bp.blogspot.com/_UqUwVPikChs/SLWTQuSV0jI/AAAAAAAAE7Q/WAMyxIA--wE/s1600-h/allblack.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5239255657027588658" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_UqUwVPikChs/SLWTQuSV0jI/AAAAAAAAE7Q/WAMyxIA--wE/s320/allblack.png" border="0" alt="" /></a><a href="http://www.deviantart.com/download/70641172/ALLBLACK_0_4_by_Mandarancio.gz"><span style="font-size: 85%;">Click here to Download</span></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.alirizadikici.com/myBlog/?feed=rss2&amp;p=3</wfw:commentRss>
		</item>
	</channel>
</rss>
