Each tick (1/20 of a second), all chunks within a certain radius of the player run updates. In 1.9pre5 the radius is 7, so the update area is a 15x15 chunk square centered on the chunk containing the player.

When a chunk updates, it does the following 20 times:

(The 20 selections are independent, so the same block can be picked more than once.) The probability of a particular block being chosen is about (20 / (16*16*128)) = 0.061%.

If a selected block is a crop which is not fully grown, and its growth conditions are met, then it makes a grow check.