Data Structures & Algorithms Concepts
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).
Iteration is a fundamental programming idea that is commonly used in writing programs.
Recursive thinking is an important art in programming which helps you to formulate the solution of a problem via the solution of its smaller subproblems.
Array and Linked list are used to store linear data of similar type but the major difference between them is related to their structure.
Stack and Queue are linear data structure that follows the LIFO (Last In First Out) and FIFO (First In First Out) principle respectively.
A 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.
Binary Search Tree combine the efficiency of insertion of a Linked List and the quick search of a sorted array.
A Heap is an array implementation of complete binary tree where each node satisfy the heap-property.
Hash Table is an important Data Structure which is used to map a given value with a particular key for faster access of elements.
Dynamic 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.
A greedy algorithm is a simple, intuitive algorithm that is used in optimisation problems.
Backtracking 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.
Graphs are used to represent, find, analyse, and optimise connections between elements like locations, users etc.
This 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.