# It's that time again!

This is a discussion on It's that time again! within the A Brief History of Cprogramming.com forums, part of the Community Boards category; Originally Posted by Prelude >What I mean is, what is 'O' and what is 'N'? And what does the '!' ...

1. Originally Posted by Prelude
>What I mean is, what is 'O' and what is 'N'? And what does the '!' mean when you have "N!"?
O is Big O notation. It makes it way easier to compare algorithms, but I haven't gotten around to writing a tutorial on it yet. N! is the mathematical notation for the factorial of N.

>For those of us who haven't done this sort of thing in math it might
>help, though I don't know how hard it is to actually explain.
Put simply, it's a way to determine the growth of an algorithm. For example, if you have an O(N^2) algorithm, the running time increases quadratically when N doubles. That's bad compared to O(N), where the running time grows in proportion to N. O(Nlog N), also given as O(N * log N) is inbetween O(N^2) and O(N). It's considered to be pretty good for a sorting algorithm. N is the number of items, by the way.

>but unfortunately I had to stop reading as soon as I reached that section because the O/N stuff threw me.
You don't have to know that stuff to get something out of the tutorial. I think I did a pretty good job of explaining which algorithms are good and which are bad without relying too much on O notation.
But O notation is pretty cool when you start to understand it. I have found being a !math person, that reading algorithm books sort of exclude people who are not in the know. If you do decide to write an article on O notation, perhaps you would consider taking it from a pretty basic level of understanding so that hobbyists can reap the benefits of understanding the more technical aspect of algorithm efficiency.

edit:: so much for actually reading the whole thread before I put my two cents worth in...

2. Actually, I think I'm just bored and wanted to say something

Page 2 of 2 First 12