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