Complexity analysis is a technique to characterise the time taken by an algorithm with respect to input size (independent from the machine, language and compiler).

STARTIteration is a fundamental programming idea that is commonly used in writing programs.

STARTRecursive thinking is an important art in programming which helps you to formulate the solution of a problem via the solution of its smaller subproblems.

STARTArray and Linked list are used to store linear data of similar type but the major difference between them is related to their structure.

STARTStack and Queue are linear data structure that follows the LIFO (Last In First Out) and FIFO (First In First Out) principle respectively.

STARTA binary tree is a tree data structure in which each node has at most two children, which are referred to as the left child and the right child.

STARTBinary Search Tree combine the efficiency of insertion of a Linked List and the quick search of a sorted array.

STARTA Heap is an array implementation of complete binary tree where each node satisfy the heap-property.

STARTHash Table is an important Data Structure which is used to map a given value with a particular key for faster access of elements.

STARTDynamic Programming solves the problem by breaking down into smaller sub-problems, and storing the solution to each sub-problem so that each sub-problem is only solved once.

STARTA greedy algorithm is a simple, intuitive algorithm that is used in optimisation problems.

STARTBacktracking solves problems recursively by building a solution incrementally, one piece at a time and removing those solutions that fail to satisfy the constraints of the problem at any point of time.

STARTGraphs are used to represent, find, analyse, and optimise connections between elements like locations, users etc.

STARTThis page will contain some of the advanced Data Structures and algorithms like B-tree, AVL Tree, Augmentation, String Matching, Sorting in linear time and Randomized Algorithms.

START