Analysis of Algorithms Articles

Page 8 of 17

Array Doubling in Data Structure

Arnab Chakraborty
Arnab Chakraborty
Updated on 10-Aug-2020 2K+ Views

Sometimes we create array using dynamic memory allocation. If the array is allocated using dynamic memory allocation technique, we can double the size of array by performing some operations.Suppose initial array size was 5.Array01234Element 1Element 2Element 3Element 4Element 5After array doubling, the size is −0123456789Element 1Element 2Element 3Element 4Element 5Element 6Element 7Element 8Element 9Element 10To double the size of array arr of size n, arr[0…n-1]. At first we have to create one new array of size say m. Then copy n elements from arr to the new array. Finally change the value of arr to point to the new array.To ...

Read More

Substitution Method in Data Structure

Arnab Chakraborty
Arnab Chakraborty
Updated on 10-Aug-2020 7K+ Views

Here we will see how to use substitution method to solve recurrence relations. We will take two examples to understand it in better way.Suppose we are using the binary search technique. In this technique, we check whether the element is present at the end or not. If that is present at middle, then the algorithm terminates, otherwise we take either the left and right subarray from the actual array again and again. So in each step the size of the array decreases by n / 2. Suppose the binary search algorithm takes T(n) amount of time to execute. The base ...

Read More

Counting Cache Misses in Data Structure

Arnab Chakraborty
Arnab Chakraborty
Updated on 10-Aug-2020 370 Views

In algorithm analysis we count the operations and steps. This is basically justified when computer takes more time to perform an operation than they took to fetch the data needed for that operation. Nowadays the cost of performing an operation is significantly lower than the cost of fetching data from memory.The run time of many algorithms is dominated by the number of memory references (number of cache misses) rather than by the number of operations. So, when we will try to desing some algorithms, we have to focus on reducing not only the number of operations but also the number ...

Read More

Operation Counts Method in Algorithm

Arnab Chakraborty
Arnab Chakraborty
Updated on 10-Aug-2020 4K+ Views

There are different methods to estimate the cost of some algorithm. One of them by using the operation count. We can estimate the time complexity of an algorithm by choosing one of different operations. These are like add, subtract etc. We have to check how many of these operations are done. The success of this method depends on our ability to identify the operations that contribute most of the time complexity.Suppose we have an array, of size n [0 to n - 1]. Our algorithm will find the index of largest element. We can estimate the cost by counting number ...

Read More

Back-off Algorithm for CSMA/CD

sudhir sharma
sudhir sharma
Updated on 06-Aug-2020 6K+ Views

Back Off Algorithm is an algorithm used for collision resolution. It works as, When this collision occurs, both the devices wait for a random amount of time before retransmitting the signal again, they keep on trying until the data is transferred successfully. This is called back off, since the nodes ‘back-off’ for a certain amount of time, before they try to re-access it again. This random amount of time is directly proportional to the number of attempts it has made to transmit the signal.AlgorithmBelow is a simple flowchart to explain the Back Off Algorithm in brief.As can be seen, that ...

Read More

Static Finger Theorem in Data Structure

Arnab Chakraborty
Arnab Chakraborty
Updated on 13-Jul-2020 222 Views

STATIC FINGER THEOREM − Let f is treated as a specific element called the finger.Then the below expression is a bound on the cost of splaying a sequenceO(m + n log(n) + Σ Sum log (|f - i[j]| + 1))jNOTE − |f-i| is denoted as the distance in the symmetric ordering of the items between the finger and item i.Where m is denoted as number of update or access operations on a tree having at most n nodes.Observe that, at least in amortized sense, the time taken for first m operations on a tree that never exceeds more than n ...

Read More

Symmetric Min-Max Heaps

Arnab Chakraborty
Arnab Chakraborty
Updated on 13-Jul-2020 2K+ Views

A symmetric min-max heap (SMMH) is defined as a complete binary tree in which each node except the root has exactly one element. The root of an SMMH be empty and the total number of nodes in the SMMH is m + 1, where m is the number of elements.Let y be any node of the SMMH. Let elements(y) be the elements in the sub tree rooted at y but excluding the element (if any) in y. Assume that elements(y) j= ∅. y satisfies the following properties:The left child of y has the minimum element in elements(y).The right child of ...

Read More

Single-Source Shortest Paths, Nonnegative Weights

Arnab Chakraborty
Arnab Chakraborty
Updated on 02-Jul-2020 1K+ Views

The single source shortest path algorithm (for non-negative weight) is also known Dijkstra algorithm. There is a given graph G(V, E) with its adjacency matrix representation, and a source vertex is also provided. Dijkstra’s algorithm to find the minimum shortest path between source vertex to any other vertex of the graph G.From starting node to any other node, find the smallest distances. In this problem the graph is represented using the adjacency matrix. (Cost matrix and adjacency matrix is similar for this purpose).Input − The adjacency matrix −0 3 6 ∞ ∞ ∞ ∞ 3 0 2 1 ∞ ∞ ...

Read More

Operating system time slicing in round robin scheduling

Arnab Chakraborty
Arnab Chakraborty
Updated on 20-Jun-2020 455 Views

process Burst time A 4 B 1 C 8 D 1time slice=10 unitA B C D A C C C 0 2 3 5 6 8 10 12 14So A will complete 8 cycles.

Read More

What is 'Space Complexity’?

Monica Mona
Monica Mona
Updated on 17-Jun-2020 6K+ Views

Space ComplexitySpace complexity is an amount of memory used by the algorithm (including the input values of the algorithm), to execute it completely and produce the result.We know that to execute an algorithm it must be loaded in the main memory. The memory can be used in different forms:Variables (This includes the constant values and temporary values)Program InstructionExecutionAuxiliary SpaceAuxiliary space is extra space or temporary space used by the algorithms during its execution.Memory Usage during program executionInstruction Space is used to save compiled instruction in the memory.Environmental Stack is used to storing the addresses while a module calls another module ...

Read More
Showing 71–80 of 161 articles
« Prev 1 6 7 8 9 10 17 Next »
Advertisements