With the help of the Stack Overflow community I\'ve written a pretty basic-but fun physics simulator.
A good way of reducing the number of collision checks is to split the screen into different sections. You then only compare each ball to the balls in the same section.