Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
Analysis of Algorithms Articles
Page 12 of 17
Adaptive Merging and Sorting in Data Structure
ADAPTIVE MERGE SORTAdaptive Merge Sort performs the merging of sorted sub-list merge sort does. However, the size of initial sub-list is depended upon the existence of ordering among the list of elements rather than having sub-list of size 1. For example, consider list in the figure.It consists of 2 sorted sub-lists.sub-list 1 with elements 16, 15, 14, 13.sub-list 2 with elements 9, 10, 11, 12.The sub-list 1 is sorted but in reverse order. Thus, the sub-list 1 is reversed as shown in the figure.Once the sub-lists are found merging process starts. Adaptive merge sort starts merging the sub-lists. Adaptive merge ...
Read MoreSkip Lists in Data Structure
In a skip list, one can finger search for element a from a node containing the element b by simply continuing the search from this point a.Note that if a < b, then search proceeds at backward direction, and if a > b, then search proceeds at forward direction.The backwards case is symmetric to normal search in a skip list, but the forward case is actually more complicated.Normally, search in a skip list is expected to be fast because the sentinel at the start of the list is considered as the tallest node.However, our finger could be associated with a ...
Read MoreRandomized Finger Search Trees in Data Structure
Two randomized alternatives to deterministic search trees are the randomized binary search trees, treaps and the skip lists. Both treaps and skip lists are defined as elegant data structures, where the randomization facilitates simple and efficient update operations.In this section we explain how both treaps and skip lists can be implemented as efficient finger search trees without changing the data structures. Both data structures support finger searches by consuming expected O(log d) time, where the expectations are taken over the random choices created by the algorithm during the construction of the data structure.Skip listsIn a skip list, one can finger ...
Read MoreLevel Linked (2,4)-Trees in Data Structure
In this section we explain how (2, 4)-trees can support efficient finger searches by the introduction of level links. The ideas explained in this section also implements to the more general class of height-balanced trees denoted (a, b)-trees, for b ≥ 2a.A (2, 4)-tree is defined as a height-balanced search tree where all leaves have the same depth and all internal nodes have degree two, three or four. Elements are stored at the leaves, and internal nodes only store search keys to guide searches. Since each internal node has degree at least two, it follows that a (2, 4)-tree has ...
Read MoreDynamic Finger Search Trees in Data Structure
A dynamic finger search data structure should in addition to finger searches also perform the insertion and deletion of elements at a position given by a finger.Finger search trees is defined as a variant of B-trees supporting finger searches in O(log d) time and updates in O(1) time, assuming that only O(1) moveable fingers are maintained.Traversing a finger d positions requires O(log d) time.The finger search trees (that means AVL-trees, red-black trees) constructions either consider a fixed constant number of fingers or only support updates in amortized constant time.Constructions supporting an arbitrary number of fingers and with worst case update ...
Read MoreFinger Searching in Data Structure
A finger search on a data structure is defined as an extension of any search operation that structure supports, where a reference (finger) to an element in the data structure is given along with the query. While the search time for an element is most frequently denoted as a function of the number of elements in a data structure, finger search times are treated as a function of the distance between the element and the finger.In a set of m elements, the distance d(a, b) between two elements a and b is their difference in rank. If elements a and ...
Read MoreMulti-Way Trees
A multiway tree is defined as a tree that can have more than two children. If a multiway tree can have maximum m children, then this tree is called as multiway tree of order m (or an m-way tree).As with the other trees that have been studied, the nodes in an m-way tree will be made up of m-1 key fields and pointers to children.multiway tree of order 5To make the processing of m-way trees easier some type of constraint or order will be imposed on the keys within each node, resulting in a multiway search tree of order m ...
Read MoreRebalancing Algorithms
The rebalancing Algorithms can be performed in following way −Day-Stout-Warren AlgorithmWe can implement actually rebalance method using the Day-Stout-Warren Algorithm.It's linear in the number of nodes.The following is a presentation of the basic DSW Algorithm in pseudo code.A node is allocated called as the "pseudo-root" and make the tree's actual root as the right child of the pseudo-root.Call tree-to-vine function for converting tree to sorted linked list with the pseudo-root as its argument.Call vine-to-tree function for converting sorted linked list to tree again with the pseudo-root and the size (number of elements) of the tree as its argument.The tree's actual ...
Read MoreBlocked Bloom Filter
We select a memory block first.Then we select local Bloom Filter within each block.It might cause imbalance between memory blocksThis filter is efficient, but poor false positive rate(FPR).At first instance, blocked Bloom filters should have the same FPR (False Positive Rate) as standard Bloom filters of the same size.Blocked Bloom Filter consists of a sequence of block b comparatively less than standard Bloom filters (Bloom filter blocks), each of which fits into one cache-line.Blocked Bloom filter scheme is differentiated from the partition schemes, where each bit is inserted into a different block.Blocked Bloom Filter is implemented in following ways −Bit ...
Read MoreCounter Size and Counter Overflow
Counter SizeWe must select counters large enough for avoiding overflow.Size is 4 bits/counter suggested by Poisson approximation.Average load implementing k = (ln 2)m/n counters is ln 2.Probability a counter has load minimum 16:≈e-ln2(ln 2)16/16!≈6.78E-17We consider 4 bits/counter for comparisons.Counter OverflowWhen a counter does overflow, it may be arrived at its maximum value.This situation can later cause a false negative only if eventually the counter goes down to 0 when it should have remained at nonzero.The expected time to this situation is very large but is something we need to keep in mind for any application that does not permit false ...
Read More