Starting off in Bioinformatics — DNA Nucleotides and Strands

In my first article where I introduced bioinformatics, I have mentioned that we will be learning a lot about DNA, RNA and Protein sequences. Since I’m new to all these DNA/RNA jargon, I decided to learn about them first and then try out some coding problems. All the sequencing problems seem to have some words related to genetics. So first things first, let’s get started. 😊

Continue reading Starting off in Bioinformatics — DNA Nucleotides and Strands

Porter Stemming Algorithm – Basic Intro

In linguistics (study of language and its structure), a stem is part of a word, that is common to all of its inflected variants.

  • CONNECT
  • CONNECTED
  • CONNECTION
  • CONNECTING

Above words are inflected variants of CONNECT. Hence, CONNECT is a stem. To this stem we can add different suffixes to form different words.

Continue reading Porter Stemming Algorithm – Basic Intro

Amortized Analysis – A basic introduction

What is Amortized Analysis?

In amortized analysis, we average the time needed to perform a sequence of data structure operations. By this method, we can show that the average cost of an operation is small, even if we have a single operation within the sequence which might be expensive. Amortized analysis guarantees the average performance of each operation in the worst case.

Continue reading Amortized Analysis – A basic introduction

B Trees – All you need to know about deleting keys

B tree is a self-balancing search tree (the tree adjusts itself so that all the leaves are at the same depth) and contains multiple nodes which keep data in sorted order. Each node has 2 or more children, known as the branching factor and consists of multiple keys.

Continue reading B Trees – All you need to know about deleting keys