Skip to content

ahmadykhan555/data-structures-and-algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Data Structures and Algorithms Learnings Hits

Chapter One: Big O Notation

In computer science being able to write a solution for an interesting problem is one of the preliminary steps towards becoming an excellent computer scientist. The robustness of a solution that can handle and cover a vast range of cases is one feat of engineering but how do we measure if one solution is more performant as opposed to another solution. In computer science the efficiency of an algorithm is often analyzed in the amount of time & steps the algorithm takes to reach a certain result. Read more

Chapter Two: Problem Solving Techniques & Patterns

Diving into coding the moment we lay our eyes on a problem statement can be very tempting at times but one can run into a dead end if one dives in without giving a considerable thought to what he is looking to solve. This chapter touches upon this problem that many programmer often find themselves stumbling across. Following Patterns are discussed in this chapter. Read more

  • Frequency Counter
  • Multiple Pointers
  • Sliding Window
  • Divide & Conquer

Chapter Three: Recursion

Recursion is an alternative of an iterative (looping) approach. This is a slightly confusing topic at first but once we get the hang of it, its really simple and efficient to use. Recursion is a pattern where a function calls itself (as opposed to some other function) until it gets to a solution. Read More

Chapter Four: Searching Algorithms

In this chapter we take a look at how searching algorithms are defined and implemented. We will take a look at the naive brute-force approach first and progressively dive into the more efficient performant ways of searching. Read More

Algorithms:

  • Linear Search in an Array Detail
  • Binary Search in a sorted array
  • String searching algorithm
  • KMP string searching algorithm

Chapter Five: Sorting Algorithms

Sorting is simply reordering the data in some shape according to some condition. We may a list to be sorted in ascending order/descending order or some custom order. This is a great problem to put one's algorithm design skills to the test. It is an interesting place to sharpen your problem solving skills as well. In this section we will take a look at how to construct a sorting algorithm and step by step optimize it for best performance. Read More

Chapter Six: Data Structures

In this section we explore advanced data structure that we don't get out of the box with Javascript. These require advanced understanding of things and are great ways of getting better at designing better algorithms.

6.1 Linked Lists

Array like structures but non-indexed. Efficient at a few things while a bit slow at the other. In this sub-section we explore how to create and interact with Linked List. Linked Lists are important to learn as they are the foundations of advanced/complex data structures like Queues and Stacks. Read More

6.2 Stacks

Read More

6.3 Queues

Read More

Chapter Seven: Trees

A tree is an advanced data structure consisting of nodes classified as parent, child sibling etc, built on top of linked lists and specializes in a variety of use-cases. Read More

About

Learnings: Data structures & Algorithms

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published