C++ Factory Pattern in C++ Factory method also known as a static class is a creational design pattern, i.e. it is related to object creation. In this we create object without exposing the creation logic to client and the client use the same common interface to create new type of object. Idea is to use a static member function
Data Structures Leftist Heap A leftist heap is a modification priority queue implemneted with variant of binary heap. Regarding binary heap, it is always a complete binary tree. It has two main properites Mean Heap Property and Heavy on left side and supports common operations in O(log N) time complexity.
C Programming While loop in C Order execution of while loop in C is control variable is initialized, test expression is evaluated, if it evaluates to true, the loop enters the body and it is repeatedly executed, till the expression does not evaluate to false. When the test expression evaluates to false, the loop is exited.
Algorithms Tile Stacking Problem We demonstrate how we will reduce the time complexity from O((k+1)^(m+1)) to O(N * M * K) to O(N * M). We have infinite number of tiles of sizes 1 to m. The task is calculate the number of different stable tower of height n with restriction that you can use at most k tiles of each size in the tower
C++ constructor in C++ A constructor is a member function of a class which initializes objects of a class. In C++, Constructor is automatically called when object(instance of class) is created it is considered to be a special member function of the class.
Python Range Function in Python Range is an inbuilt function in python that is generally used to create a sequence of numbers. It can accept upto three arguments to modify the output accordingly We will look into its functionalities and any limitations that range has. Let's start from basics and build up our understanding of range
C++ delete operator in C++ In C++, Delete is an operator that is used to destroy array and non-array(pointer) objects which are created by new operator as well as NULL pointers. Using operator overloading, we can delete user defined objects as well
C++ new operator in C++ In C++, the new operator denotes a request for memory allocation on the Heap. If sufficient memory is available, new operator initializes the memory and returns the address of the newly allocated and initialized memory to the pointer variable.
Machine Learning (ML) Porter Stemmer algorithm Stemming is the process of reducing a word to its stem that affixes to suffixes and prefixes or to the roots of words lemma. We cover the algorithmic steps in Porter Stemmer algorithm, a native implementation in Python, implementation using Porter Stemmer algorithm from NLTK library and conclusion.
Java do while loop in Java A do-while loop is similar to a while loop, except the fact that it is guaranteed to execute at least one time. The do-while loop checks its condition at the bottom of the loop after one time execution of do and hence, is an exit control loop. It is slower than for and while loops in Java
Software Engineering while loop in Java A while loop is an entry controlled control flow statement that allows code to be executed repeatedly based on a given condition. In Java, while loop is widely used. On benchmarking the performance, we see that while loop is slower than for loop but is two times faster than do while loop.
Data Structures Binomial Heap Binomial Heap is an extension of Binary Heap that provides faster union or merge operation together with other operations provided by Binary Heap. A Binomial Heap is a collection of Binomial trees. Binomial Heap is used to implement priority queues.
Data Structures Priority Queue Priority queue is an abstract data type which is like a queue or stack data structure with each element having a priority assigned to it. In priority queue, an element with highest priority assigned is served first, if two elements have same priority then they are served according to enqueue order
Java Postfix (i++) vs Prefix (++i) increment in Java i++ is known as postfix increment operation while ++i is known as prefix increment operation. We compare these two operations based on Use/ Program flow, Compiler instruction and Benchmark. We demonstrate that ++i is significantly faster than i++ in Java.
Java i++ vs i=i+1 in Java Often, i++ and i=i+1 are considered to be same statements but in Java, both statements work differently internally. We will take a look at The compiler instructions used, Typecasting along with the operations and benchmarking the two operations. We see that i=i+1 is always faster than i++.
Java for loop in Java for loop is an entry controlled loop that is widely used in Java programming language. Loops are used to repeat a particular coding task where each repetition follows a particular pattern which can be incorporated in a code. We provided several Java examples to demonstrate the concept
Python Reading and Writing Text Files in Python This post will cover how to work with text files specifically in Python. We covered Opening a file, Reading a file: read() and readlines(), Writing to files, keeping track of pointers: tell() and seek(), Closing a file and File attributes
Python if else statement in Python We will take a deep look into if else, else if (elif), nested if else and the possible condition statements used in if else in Python. if else is a program control statement and is widely used in almost all programming languages
C++ Classes and Objects in C++ In C++, a class is a mechanism for creating user-defined data types. A class is used to specify the form of an object and it combines data representation. The variables inside class definition are called as data members and the functions are called member functions.
C++ Scopes in C++ Scope is defined as the extent to which something can be worked with (or a scope is a region of the program ). In C++, there are 9 types: Global scope, Local scope, Namespace scope, Class scope, Statement scope, Function scope, Function parameter scope, Enumeration scope and Template parameter scope
Algorithms Sleep Sort Sleep Sort is time-based sorting technique. We create different threads for each individual element present in the array. The thread is then made to sleep for an amount of time that is equal to value of the element for which it was created. Time complexity is O(NlogN + max(input))
Data Structures Implementing Stack using queues in two ways A stack is based on the principle of Last-in-First-Out(LIFO). It is commonly used abstract data type with two major operations, namely pop and push. Push() and pop() are carried out in the topmost element, which is the item most recently added to the stack. Push operation adds an element to stack
C++ Priority Queue in C++ STL Priority queue in the STL of C++ is a dynamically resizing container to implement the special case of priority queye under the queue data structure. It is a sequential linear container. The top element of the priority queue is the greatest with all elements arranged in non-increasing order.
C++ Queue in C++ STL Queue in the STL of C++ is a dynamically resizing container to implement the queue data structure. It is a sequential linear container which follows the First In First Out(FIFO) arrangement. We explore the various functions like empty, size, swap, emplace, front, back, push and pop operations
Algorithms Distance between two points in 2D space Distance between two points is calculated by creating a right-angled triangle using the two points.The line between the two points is the hypotenuse (the longest side, opposite to the 90° angle). We used the Distance formula derived from Pythagorean theorem with a time complexity of O((log N)^2)