# Complexity Theory - Running Time Analysis of Algorithms

Learn Asymptotic Complexity, Running Times Analysis (O, Ω, θ) and Complexity Classes (P and NP)
Free tutorial
Rating: 4.2 out of 5 (2,348 ratings)
32,222 students
1hr 55min of on-demand video
English
English [Auto]

Understand running time analysis
To be able to analyze algorithms' running times
Understand complexity notations
Understand complexity classes (P and NP)

## Requirements

• Internet connection

## Description

This course is about algorithms running time analysis and complexity theory. In order to be able to classify algorithms we have to define limiting behaviors for functions describing the given algorithm.

We will understand running times such as O(N*logN), O(N), O(logN) and O(1) - as well as exponential and factorial running time complexities.

Thats why big O, big Ω and big θ notations came to be. We are going to talk about the theory behind complexity theory as well as we are going to see some concrete examples.

Then we will consider complexity classes including P (polynomial) as well as NP (non-deterministic polynomial), NP-complete and NP-hard complexity classes.

Section 1 - Algorithms Analysis

• how to measure the running time of algorithms

• running time analysis with big O (ordo), big Ω (omega) and big θ (theta) notations

• complexity classes

• polynomial (P) and non-deterministic polynomial (NP) algorithms

Section 2 - Algorithms Analysis (Case Studies)

• constant running time O(1)

• linear running time O(N)

• logarithmic running time O(logN)

• quadratic running time complexity O(N*N)

These concepts are fundamental if we want to have a good grasp on data structures and graph algorithms - so these topics are definitely worth considering. Hope you will like it! Thanks for joining my course, let's get started!

These concepts are fundamental if we want to have a good grasp on data structures and graph algorithms - so these topics are definitely worth considering. Hope you will like it! Thanks for joining my course, let's get started!

## Who this course is for:

• This course is meant for everyone who are interested in algorithms and want to get a good grasp on complexity theory

## Instructor

Software Engineer
• 4.5 Instructor Rating
• 39,454 Reviews
• 304,727 Students
• 34 Courses

My name is Balazs Holczer. I am from Budapest, Hungary. I am qualified as a physicist. At the moment I am working as a simulation engineer at a multinational company. I have been interested in algorithms and data structures and its implementations especially in Java since university. Later on I got acquainted with machine learning techniques, artificial intelligence, numerical methods and recipes such as solving differential equations, linear algebra, interpolation and extrapolation. These things may prove to be very very important in several fields: software engineering, research and development or investment banking. I have a special addiction to quantitative models such as the Black-Scholes model, or the Merton-model.

Take a look at my website if you are interested in these topics!