algorithms

Union-Find Data Structure: Intro

A disjoint-set data structure, also called a union–find data structure keeps track of a set of elements partitioned into a number of disjoint (non-overlapping) subsets. With this setting we define the following operations: Find: Determine which subset a particular element is in. This can be used for determining if two elements are in the same… Continue reading Union-Find Data Structure: Intro

algorithms

Sum of Multiples of N – C

Let us say we want to compute the sum of all the multiples of 3, amidst the range 1 to 999. The brute force approach would be to run a loop from 1 to 999 and if the (loop_variable % 3) is 0, we add it to a variable which maintains the sum. We could… Continue reading Sum of Multiples of N – C

algorithms

Setting Max and Min values for Integer – C

There are cases in programs where we will have to set variables with maximum (say like infinity) or with minimum values. We generally tend to see the input and initialize with a higher value like 9999 for maximum and -1 for minimum. Well, we all know that’s not right. What’s right is using the ‘limits.h’… Continue reading Setting Max and Min values for Integer – C

algorithms

memset in C

memset is used to initialize a block a memory with desired value. The prototype of the function is: void *memset(void *ptr, int x, size_t n) where – ptr is the starting address of memory to be filled (note that the type of pointer is void) – x is the value to be initialized with – n… Continue reading memset in C

algorithms

Asymptotic Notations

Let’s start with the basic question, ‘What are Asymptotic Notations?’ Asymptotic notations are mathematical notations that describe the limiting behaviour of a function when the argument tends towards a particular value (or may be infinity). The phrase ‘limiting behaviour’ here is important. The notations describe the restriction and boundaries towards a function. Let’s stay for… Continue reading Asymptotic Notations