{"id":1614,"date":"2011-07-02T10:23:46","date_gmt":"2011-07-02T14:23:46","guid":{"rendered":"http:\/\/www.acarlstein.com\/?p=1614"},"modified":"2017-08-29T09:55:10","modified_gmt":"2017-08-29T13:55:10","slug":"list-of-common-algorithms-part-1","status":"publish","type":"post","link":"http:\/\/blog.acarlstein.com\/?p=1614","title":{"rendered":"List of Common Algorithms &#8211; Part 1"},"content":{"rendered":"<p>NOTIFICATION: These examples are provided for educational purposes. Using this code is under your own responsibility and risk. The code and information is given \u2018as is\u2019. I do not take responsibilities of how they are used.<\/p>\n<p><strong><a title=\"List of Common Algorithms \u2013 Part 2\" href=\"http:\/\/www.acarlstein.com\/?p=1626\">List of Common Algorithms &#8211; Part 2 &gt;<\/a><\/strong><\/p>\n<ol>\n<li><strong>Insertion sort:<\/strong> Efficient for sorting small number of elements. Remove one element at a time and insert it back into the correct position.<\/li>\n<li><strong>Merge sort:<\/strong> Divide-and-conquer sorting algorithm. Divide the problem into small sub-problems. Solve the sub-problems recursively. Combine the solution of the sub-problems into the solution for the original problem.<\/li>\n<li><strong>Bubble sort:<\/strong> Repeatedly swap adjacent elements in the right order.<\/li>\n<li><strong>Horner&#8217;s polynomial rule:<\/strong> A rule which the number of necessary multiplications and results in less numerical instability due to potential subtraction of one large number from another are reduced.<\/li>\n<li><strong>Permute-By-Sorting:<\/strong> Randomized algorithm in which the input is randomized by permuting the input array. This algorithm belong to the uniform random permutation algorithms.<\/li>\n<li><strong>Randomize-In-Place:<\/strong> This algorithm belong to the uniform random permutation algorithm.<\/li>\n<li><strong>Heapsort:<\/strong> Array in which elements can be viewed as a complete binary tree. Each node satisfy a heap property.<\/li>\n<li><strong>Max-Heapify:<\/strong> subroutine for manipulating max-heaps. Normally used for Heapsort.<\/li>\n<li><strong>Priority Queues:<\/strong> A set of data sequence in which each set of elements is associated with a value called key.<\/li>\n<li><strong>Quicksort:<\/strong> Divide-and-conquer sorting algorithm. Uses a partition algorithm in order to divided the array.<\/li>\n<li><strong>Random Sampling Quicksort:<\/strong> This version of the Quicksort algorithm performs a randomized-partition.<\/li>\n<li><strong>Hoare partition:<\/strong> This version of the Quicksort algorithm performs a partition with the use of two indices in which each begins at the extreme ends of the input array.<\/li>\n<li><strong>Stooge sort:<\/strong> Recursively sorting algorithm. Slower than Bubble sort.<\/li>\n<li><strong>Stack Depth:<\/strong> Also known as tail recursion. After the partition, first sub-array to be recursively shorted will be the left sub-array, then the right sub-array.<\/li>\n<li><strong>Median-of-3 partition:<\/strong> An improved version of the Randomized-Quicksort.<\/li>\n<li><strong>Fuzzy sorting of intervals:<\/strong> Produce a permutation of the intervals such that the existent must satisfy a rule.<\/li>\n<li><strong>Counting sort:<\/strong> For each input element, determine the number of elements less than the input. Assumes that the input consists of integers in a small range.<\/li>\n<li><strong>Radix sort:<\/strong> Used for card-sorting. All cards are organized into 80 columns.\u00a0 In each column a card is punched into one of twelve places. Then a sort is perform on a list of seven 3-digit numbers.<\/li>\n<li><strong>Bucket sort:<\/strong> Similar to counting sort however it assumes that the input is generated by a random process in which the numbers are distributed uniformly and independently over an interval [0,1).<\/li>\n<li><strong>Randomized-Select:<\/strong> This algorithm only works on one side of the partition instead of both as in Quicksort. This algorithm uses a Randomized-Partition.<\/li>\n<li><strong>Stacks:<\/strong> In a stack, the stack can implement a last-in, first-out (LIFO) policy or first-in, first-out (FIFO) policy.<\/li>\n<li><strong>Queue:<\/strong> An stack with FIFO property which have a head and a tail.<\/li>\n<li><strong>Enqueue:<\/strong> Insert operation on a queue.<\/li>\n<li><strong>Dequeue:<\/strong> Delete operation on a queue.<\/li>\n<li><strong>Linked-list:<\/strong> data structure in which each node is arranged in a linear order.<\/li>\n<li><strong>Binary Tree:<\/strong> A parent node which have a left and right child node.<\/li>\n<li><strong>Hash Tables:<\/strong> Generalization of a simpler notion of an ordinary array. It performs a direct addressing, applicable when allocating an array that has one position for every possible key is affordable.<\/li>\n<li><strong>Direct-Address Tables:<\/strong> A dynamic set is represented by an array or direct-address table in which each slot (or position) correspond to a key.<\/li>\n<li><strong>Open Addressing:<\/strong> Each table entry contain either an element of the dynamic set or none; therefore, we can say that all elements are being store in the hast table itself.<\/li>\n<li><strong>Double Hashing:<\/strong> A method of open addressing in which permutations produced have randomly even permutations.<\/li>\n<li><strong>Red-Black Trees:<\/strong> Binary tree in which each node have an extra bit of storage which is use to indicate the colour of the node: red or black.<\/li>\n<li><strong>Matrix-chain multiplication:<\/strong> Compute the product of a given sequence (chain) of n number of matrices.<\/li>\n<li><strong>Length of Less Common Denominator (LCS):<\/strong> Compute two sequences as input.<\/li>\n<li><strong>Bitonic Euclidean Travelling-Salesman Problem:<\/strong> Also known as TSP. Algorithm that help to simplify the problem of determining the shortest closed tour that connects a set of given points.<\/li>\n<li><strong>Viterbi Algorithm:<\/strong> Algorithm used for speech recognition. It help to solve a labelled graph made of\u00a0 a person speaking a restricted language.<\/li>\n<li><strong>Greedy Algorithm:<\/strong> It is an algorithm in which the best looking choice is made at the moment.<\/li>\n<li><strong>Fractional Knapsack Problem:<\/strong> Greedy algorithm for a problem related with items size, their price and storage.<\/li>\n<li><strong>Huffman Algorithm:<\/strong> Algorithm use for compressing data in an effective way.<\/li>\n<li><strong>B-Trees:<\/strong> Balanced search trees.<\/li>\n<li><strong>Binomial trees:<\/strong> ordered tree defined recursively.<\/li>\n<li><strong>Binomial heaps:<\/strong> Set of binomial trees which have binomial heap properties.<\/li>\n<li><strong>Fibonacci heaps:<\/strong> Collection of min-heap-ordered trees.<\/li>\n<li><strong>Unordered binomial tree:<\/strong> Binomial tree with a single node, and an unordered binomial tree consisted of two unordered binomial trees.<\/li>\n<li><strong>Disjoint-set operations:<\/strong> Maintenance of\u00a0 a collection of disjoint dynamic sets.<\/li>\n<li><strong>Disjoint-set forests:<\/strong> Set of rooted trees which in each of their nodes contain one member and each of these trees represent one set.<\/li>\n<li><strong>Union by rank:<\/strong> Linked-list representation of the weighted-union heuristic.<\/li>\n<li><strong>Path compression:<\/strong> simple and effective heuristic without changing any ranks.<\/li>\n<li><strong>Union by rank with path compression:<\/strong> Combination of union-by-rank and path-compression heuristic.<\/li>\n<li><strong>Off-line minimum problem:<\/strong> Maintenance of a dynamic set of elements from an specific domain.<\/li>\n<li><strong>Adjacency-list representation:<\/strong> representation of a graph using adjacent list for each vertex.<\/li>\n<\/ol>\n<p><strong><a title=\"List of Common Algorithms \u2013 Part 2\" href=\"http:\/\/www.acarlstein.com\/?p=1626\">List of Common Algorithms &#8211; Part 2 &gt;<\/a><br \/>\n <\/strong><\/p>\n<p>&nbsp;<\/p>\n\n<script>\nvar zbPregResult = '0';\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>NOTIFICATION: These examples are provided for educational purposes. Using this code is under your own responsibility and risk. The code and information is given \u2018as is\u2019. I do not take responsibilities of how they are used. List of Common Algorithms &#8211; Part 2 &gt; Insertion sort: Efficient for sorting small number of elements. Remove one [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19,218],"tags":[68],"class_list":["post-1614","post","type-post","status-publish","format-standard","hentry","category-programming","category-algorithms-programming","tag-algorithms"],"_links":{"self":[{"href":"http:\/\/blog.acarlstein.com\/index.php?rest_route=\/wp\/v2\/posts\/1614","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.acarlstein.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.acarlstein.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.acarlstein.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.acarlstein.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1614"}],"version-history":[{"count":15,"href":"http:\/\/blog.acarlstein.com\/index.php?rest_route=\/wp\/v2\/posts\/1614\/revisions"}],"predecessor-version":[{"id":3928,"href":"http:\/\/blog.acarlstein.com\/index.php?rest_route=\/wp\/v2\/posts\/1614\/revisions\/3928"}],"wp:attachment":[{"href":"http:\/\/blog.acarlstein.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1614"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.acarlstein.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1614"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.acarlstein.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1614"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}