Home > Web Front-end > JS Tutorial > Big O Notation: Understanding Time Complexity using Flowcharts

Big O Notation: Understanding Time Complexity using Flowcharts

Mary-Kate Olsen
Release: 2025-01-05 01:07:38
Original
842 people have browsed it

I highly recommend Edison's post on Big-O complexity in JavaScript. It's the friendliest article I've seen on the topic.

Article No Longer Available

I'll be taking points from Edison here as I visualize Big-O time complexity with flowcharts.

O log(n)

Logarithmic Time

Big O Notation: Understanding Time Complexity using Flowcharts

The way I visually understand time complexity is by looking at the iterator, i*2 for example , and looking at how many loops the function has.

O(n)

Linear Time

Big O Notation: Understanding Time Complexity using Flowcharts

Linear time and logarithmic time look similar but the output is different because of the conditions of the loop. exampleLogarithmic(100) will return 1, 2, 4, 8, 16, 32, 64, whereas exampleLinear(100) simply loops through all positive integers under 100.

O(n^2)

Quadratic Time

Big O Notation: Understanding Time Complexity using Flowcharts

The number of loops coincides with the exponent which n is raised to. You can literally see the function grow bigger as time complexity increases.

O(n^3)

Cubic Time

Big O Notation: Understanding Time Complexity using Flowcharts

This isn't the only way to understand time complexity, but it is really helpful to literally see the function grow longer as time complexity increases. Sometimes code written in black and white

 blocks doesn't get the point across to visual learners.

Now let's have a quiz. What is the time complexity of this function?

Make your guess...

Big O Notation: Understanding Time Complexity using Flowcharts

It's linear! I can tell because there's one loop and the iterator doesn't cause the loop to skip over any integers.

What is the time complexity of this function?

Big O Notation: Understanding Time Complexity using Flowcharts

Don't doubt yourself. Although this is a bit different from the first examples, it has linear time complexity.

What is the time complexity of this function?

Big O Notation: Understanding Time Complexity using Flowcharts

You may see a pattern here. It's linear!

Now, if you've been following my train of logic, this may be a trick question:

Big O Notation: Understanding Time Complexity using Flowcharts

I said that the number of loops denoted the exponent n is raised to. So why is does this have linear time complexity and not quadratic?

This would have quadratic time complexity if it showed a for loop inside of another for loop. However, one for loop that runs after another for loop does not have quadratic but rather linear time complexity.

Okay, so what is the time complexity of this function?

Big O Notation: Understanding Time Complexity using Flowcharts

There's nothing tricky here. This has quadratic time complexity.

Now, for your last question - a question that questions all the other questions - what is this function's time complexity?

Big O Notation: Understanding Time Complexity using Flowcharts

I hope you're looking at the conditions of the for loop as well as the sheer number of loops. This has quadratic time complexity because of the loop condition i

I generated the images in this post with my app, whose development process I described in another post:

Big O Notation: Understanding Time Complexity using Flowcharts[

How to get 100 on Lighthouse

ender minyard ・ Aug 30 '20 ・ 2 min read

webperf#speed#javascript#webdev

](/ender_minyard/how-i-got-100-on-lighthouse-2icd)

The above is the detailed content of Big O Notation: Understanding Time Complexity using Flowcharts. For more information, please follow other related articles on the PHP Chinese website!

source:dev.to
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template