# Abdul Bari Algorithms Course

One of the best introductory courses on algorithms. It's thorough, yet succinct and gives a broad overview of algorithms.

One of the best introductory courses on algorithms. It’s thorough, yet succinct and gives a broad overview of algorithms.

## Video Course Link

## Time Complexity

*Notes**: abdul bari algorithms/time-complexity

### Introduction to algorithms

What is an algorithm?

Priori vs Poesteriori Analysis

Algorithm Characteristics and analysis

Frequency count method to find time taken by an algorithm

### Algorithm analysis

Time Complexity

Space Complexity

Asymptotic Notation

Big O - $O$

Big Omega - Ω

Theta - Θ

### Properties of asymptotic notation

General

Reflexive

Transitive

Symmetric

Transpose Symmetric

### Comparisons of functions

Best, worst, and average case analysis

Linear Search

Binary Search

## Recurrence Relation and Master’s Theorem for Subtracting Functions

*Notes**: abdul bari algorithms/recurrence-relation-masters-theorem-subtracting

Divide and Conquer Intro

Examples where the subproblems reduce by n-b

Substitution method for finding recurrence relation

Tree method for finding recurrence relation

### Master’s Theorem

For the general form $T(n)=aT(n−b)+f(n)$

## Recurrence Relation and Master’s Theorem for Dividing Functions

*Notes**: abdul bari algorithms/recurrence-relation-masters-theorem-dividing

Examples where the subproblems reduce by n/b

Substitution method for finding recurrence relation

Tree method for finding recurrence relation

### Master’s Theorem

For the general form $T(n)=a∗T(bn )+f(n)$

## Binary Search

*Notes**: abdul bari algorithms/binary search

Iterative Implementation

Recursive Implementation

## Heap

*Notes**: abdul bari algorithms/heap

Array Representation of Binary Heap

Complete Binary Tree

Full Binary Tree

Insertion

Deletion

Heap Sort

Heapify

Priority Queue

## Merge Sort

*Notes:** abdul bari algorithms/merge sort

Merge list

2 way merge

k-way merge

Iterative Merge sort