# Time and space complexity analysis bigO notation

Learn how to analyze the time complexity and the space complexity of an algorithm by using the big O notation

4.4/5

## Time and space complexity analysis bigO notation

### What you’ll learn

Analyze the time and space complexity of an algorithm
Compare the complexity of two algorithms
Complexity of searching and sorting algorithms
Complexity of data structures main operations

### Requirements

Basic programming knowledge

### Description

You have issues with time and space complexity analysis? No worries, get ready to take a detailed course on time and space complexity analysis that will teach you how to analyze the time and space complexity of an algorithm, an important skill to have in computer science and competitive programming!The course contains both theory and practice, theory to get all the knowledge you need to know about complexity analysis (notations, input cases, amortized complexity, complexity analysis of data structures…) and practice to apply that knowledge to analyze the time and space complexity of different algorithms!And to make your learning experience better, the course will have quizzes, extra resources, captions, animations, slides, good audio/video quality…et cetera. And most importantly, the ability to ask the instructor when you don’t understand something! Hours and hours of researching, writing, animating, and recording, to provide you with this amazing course, don’t miss it out!The course will cover:Complexity analysis basicsBig-O, big-Omega, and big-Theta notationsBest, average, and worst caseComplexities hierarchyComplexity classes (P vs NP problem)How to analyze the time and space complexity of an algorithmHow to compare algorithms efficiencyAmortized complexity analysisComplexity analysis of searching algorithmsComplexity analysis of sorting algorithmsComplexity analysis of recursive functionsComplexity analysis of data structures main operationsCommon mistakes and misconceptionsComplexity analysis of some popular interview coding problemsHope to see you in the course!

### Overview

Section 1: Complexity analysis basics

Lecture 1 Introduction

Lecture 2 Examples

Lecture 3 Big-O, big-Ω, and big-θ notations

Lecture 4 Extra resource: Notations mathematical definition

Lecture 5 Best, average, and worst case

Lecture 6 Complexity classes

Section 2: How to analyze the complexity of an algorithm

Lecture 7 Complexities hierarchy

Lecture 8 How to analyze the complexity of an algorithm

Lecture 9 Amortized complexity

Lecture 10 How to compare two algorithms

Lecture 11 “Find pair that sums up to k” problem analysis

Section 3: Searching algorithms and complexity analysis

Lecture 12 Linear search algorithm

Lecture 13 Binary search algorithm

Lecture 14 Knuth-Morris-Pratt (KMP) algorithm

Section 4: Sorting algorithms and complexity analysis

Lecture 15 Introduction

Lecture 16 Insertion sort

Lecture 17 Bubble sort

Lecture 18 Selection sort

Lecture 19 Merge sort

Lecture 20 Heapsort

Lecture 21 Quicksort

Lecture 22 Counting sort

Lecture 24 Bucket sort

Lecture 25 Shell sort

Lecture 26 Extra resource: Summary

Section 5: Recursive functions and complexity analysis

Lecture 27 Introduction

Lecture 28 Recursion tree method

Lecture 29 Recurrence relation method

Lecture 30 Master theorem method

Lecture 31 Space complexity analysis of recursive functions

Lecture 32 Memoization

Lecture 33 Dynamic programming

Section 6: Data structures and complexity analysis

Lecture 34 Arrays

Lecture 35 Linked lists, stacks, and queues

Lecture 36 Hash tables and sets

Lecture 37 Trees

Lecture 38 Mathematical proof of time complexity of building a binary heap

Lecture 39 Graphs

Lecture 40 Extra resource: Summary

Section 7: Common mistakes and misconceptions

Lecture 41 Nested loops == O(n²)?

Lecture 42 Common mistakes

Lecture 43 Do we always need to optimize?

Section 8: Practice: complexity analysis of popular coding interview problems solutions

Lecture 44 First repeating character

Lecture 45 Maximum subarray

Lecture 46 Peak finding

Lecture 48 String subsequences

Lecture 49 Minimum cost path

Lecture 50 Longest consecutive sequence

Lecture 51 Longest common subsequence

Lecture 52 Subsets that sum up to k

Lecture 53 Balanced binary tree

Lecture 54 Array permutations

Lecture 55 Word search

Lecture 56 N-queens

Lecture 57 Bonus: space-optimized dynamic programming

Programmers,Computer science students,Engineering students,Competitive programmers,Self-taught developers

#### Course Information:

Udemy | English | 7h 34m | 1.95 GB
Created by: Inside Code

You Can See More Courses in the Teaching & Academics >> Greetings from CourseDown.com

Scroll to Top