>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.