software engineering Design Patterns In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. Rather, it is a

data structures Disjoint Set A disjoint-set data structure maintains a collection \(\mathcal{S} = \{S_{1}, S_{2}, \dots, S_{k}\}\) of disjoint dynamic sets. A weighted-union heuristic Theorem 1 Using linked-list representation of disjoint sets and the weighted union heuristic, a sequence of \(m\) MAKE-SET, UNION, and FIND-SET

data structures Graph Breadth-first search Lemma 1 Let \(G = (V, E)\) be a directed or undirected graph, and let \(s \in V\) be an arbitrary vertex. Then for any edge \((u, v) \in E\),\( \delta (s, v) \leq \delta (s, u) + 1\). Lemma 2 Let \(G = (V,

data structures Tree Binary Tree A binary tree \(T\) is a structure defined on a finite set of nodes that either contains no nodes, or is composed of three disjoint set of nodes: a root node, a binary tree called its left subtree, and a binary tree

divide and conquer Divide-and-Conquer Divide the problem into a number of sub-problems that are smaller instances of the same problem. Conquer the sub-problems by solving them recursively. If the sub-problem sizes are small enough, however, just solve the sub-problems in a straightforward manner. Combine the solutions to the

c++ Curiously recurring template pattern The curiously recurring template pattern (CRTP) is an idiom in C++ in which a class X derives from a class template instantiation using X itself as template argument. It is a form of F-bounded Quantification. // The Curiously Recurring Template Pattern (CRTP) template <class

mathematics Calculus Limits \(\displaystyle \lim_{x \to c} f(x) = L\) Discontinuity Removable Discontinuity Jump Discontinuity Essential Discontinuity Derviative

category theory Category Theory Category A category is a collection of objects that are linked by arrows. Morphisms Universal Construction Functor A functor is a map between categories. Definition Let C and D be categories. A functor F from C to D is a mapping that: associates to

mathematics Functions A function \(f\) from a set \(D\) to a set \(Y\) is a rule that assigns a unique value \(f(x)\) in \(Y\) to each \(x\) in \(D\). The set \(D\) of all possible input values is called the domain of the function. The

quantum Quantum computing Quantum computing is computing using quantum mechanical phenomena, such as superposition and entanglement.

quantum Quantum mechanics "Quantum mechanics" is the description of the behavior of matter and light in all its details and, in particular of the happenings on an atomic scale.

greedy algorithm Continuous Knapsack Problem Also known as the fractional knapsack problem. Continuous knapsack problem can be solved by a greedy algorithm.

dynamic programming Subset Sum Problem A special case of 0/1 Knapsack Problem Given a finite set \(S = \{ s \in \mathbb{Z}_+\}\) and an integer \(t < 0 \), is there a subset

mathematics Quadratic Equations When \(a \ne 0\) , there are two solutions to \(ax^2 + bx + c = 0\) and they are $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ Discriminant: \(D = b^2-4ac\) If \(\alpha\) and \(\beta\) are the roots of quadratic equation (\(ax^2 + bx + c = 0\

dynamic programming The Coin Change Problem The coin change problem is a classic dynamic programming problem (unbounded knapsack problem) which can be solved recursively. N = Coins with different denominations D = Array of denominations S = Total amount to make C = Number of Combinations Recursive Formula: C(N, S) = C(N -

silchar सिलचर काव्य - सिलचर (Silchar) २ साल पुरानी बात है ये, लेकिन लगता है अब तो... कि १ अरसा सा हो गया है। दिल्ली पीछे छोड़ के... सिलचर को गया था मै जब।