Introduction If you are new to string search, I would recommend to first read the brute force approach here. Brute force as discussed in the mentioned post has time complexity of O(mn) in worst case. Rabin-Karp also has the worst case time complexity of O(mn), but it has a much better time complexity of O(m... Continue Reading →
Simple Explanation And Implementation Of Knuth-Morris-Pratt (KMP) Algorithm For String Search
Introduction We have seen brute force approach to string search here. Brute force approach to string search has time complexity of O(n*m). Donald Knuth and Vaughan Pratt, and James H. Morris conceived the algorithm in 1970. KMP algorithm is the first algorithm to have linear time complexity. Problem Statement We will assume text (where we... Continue Reading →
A beginner guide to Brute Force Algorithm for substring search
Introduction CONTROL + F or COMMAND + F How often do you use above keyboard shortcut? In fact, for most of us, searching a string or substring in a pile of strings/document is involuntarily action with the above key combination. This post will deal with the subject of the substring search. We will quickly define... Continue Reading →
A complete tutorial on Binary Tree
Introduction Figure 1 shows a Binary Search Tree. This post will start with the motivation of studying BST and gradually move to the related definitions. We will do some hands on coding for simple BST operations and we will end the post by analysing the drawbacks. Where do we use Binary Search Tree? Trees... Continue Reading →
Java Basic Tutorials
We had conducted a series of three online lectures for those who want to learn Java. These presentation were made for a beginner with no prior knowledge of java. Lectures were supported by online tests and a small project to get hands on knowledge. Please find the presentations that will help in jumpstarting the java... Continue Reading →
Optimizing MySQL Performance – An Introduction
What can a badly designed database do? Anyone whose bread and butter comes from database seldom underestimates database performance. But Paulo Cohelo said in veronica decides to die that, People never learn anything by being told, they have to find out for themselves. Echoing the similar sentiments, I was happily having breakfast, lunch and dinner until one... Continue Reading →
Apache Kafka Introductory Tutorial – Set up your first Kafka Producer and Consumer
Prerequisite A basic understanding about Apache Kafka. Please go through the introduction once, should you need it. Installation Download the Kafka from here. Untar the tar file that is downloaded. tar -xzf kafka_2.11-2.1.0.tgz Run The Server cd kafka_2.11-2.1.0 Start the zookeeper first bin/zookeeper-server-start.sh config/zookeeper.properties Zookeeper would be running at 2181 port. You can check that... Continue Reading →
Introduction to Apache Kafka Concepts
What is Apache Kafka? Apache Kafka is a distributed streaming platform. This essentially means that Kafka has following capabilities: Publish and subscribe to the stream of records just like how message queue (e.g. RabbitMQ) works Store streams of records for specified time. Kakfa is not a replacement for database or a logging platform. However, kafka... Continue Reading →
A tutorial for MNIST – Digit Recognition Using scikit learn
Introduction This is again a note to myself. This code has been prepared following different tutorials and SO answers. I have tried to cover many of them in reference below. The notebook is commented to the best of my ability. Starting with 11% in first trial, the final model is able to achieve accuracy of... Continue Reading →
Hello World Tutorial App Using React Native For Android/ios
Installation Please install node.js if you haven't already done. You can check if you have node already installed by using following command: node -v brew install node Use brew commands given above to install node. Create First App npm install -g create-react-native-app Create React Native App makes it significantly easier to get started with a... Continue Reading →