Data Structures Soft heap Soft heap is a variant of heap data structure (priority queue). It is a powerful data structure owing to amortized constant time complexity of some basic functions.

Data Structures Skew Heap We have explained Skew heap. Skew heap is a special variant of Leftist heap. Leftist heap is in turn, a variant of binary heap. We have given an overview of binary heaps, then discussed leftist heaps and finally talked about skew heaps.

Algorithms NP Hard problems We have covered the basics of NP Hard problems along with examples such as Subset Sum problem, Travelling Salesman Problem, optimization problem of finding the least cost cyclic route and much more.

Algorithms Job Shop Problem Job Shop Problem: We are given a number of jobs and machines. Each job constitutes a sequence of tasks which need to be performed in a particular order. Each task can be processed on a specific machine. We need to schedule all the tasks.

Algorithms NP Complete Complexity In this article, we have explored the idea of NP Complete Complexity intuitively along with problems like Clique problem, Travelling Salesman Problem and more.

Algorithms Hospital Residents Problem We have explored Hospital Residents Problem which is an matching problem similar to Stable Room Mates problem and Gale Shapley algorithm. In this, we match applicants to programs/ jobs.

Algorithms Stable Roommates Problem (Irving's Algorithm) In Stable Roommates Problem, we are given an even-sized set in which each member has a preference list which consists of all other members of the set. We need to match the members of the set such that every member has most preferred choice as their roommate. This is solved using Irving's Algorithm.

Algorithms Gale Shapley Algorithm for Stable Matching problem Gale Shapley Algorithm is an efficient algorithm that is used to solve the Stable Matching problem. It takes O(N^2) time complexity where N is the number of people involved.

Algorithms Minimum Increment and Decrement operations to make array elements equal We are given an array, we need to find the minimum number of increment and decrement operations (by 1) required to make all the array elements equal. We have explored two approaches where brute force approach take O(N^2) time while the efficient approach O(N logN) time.

Algorithms Minimum number of increment (by 1) operations to make elements of an array unique We are given a sorted array which might have duplicate elements, our task is to find the minimum number of increment (by 1) operations needed to make the elements of an array unique. We have solved this using two approaches one using two pointers and other using hashmap.

Software Engineering Different ways to initialize a queue in C++ STL In this article, we have explored different ways to initialize a queue in C++ Standard Template Library (STL). There are three ways to initialize Member functions for inserting elements, Container objects and another Queue.