Why is processing a sorted array faster than an unsorted array?
One take away point from this for non-c coders is that higher level languages will always be significantly slower than C because it's far easier to make these kinds of fiddly pipeline optimizations when you don't have another abstraction layer in between mucking things up. There's few java programmers for instance that both intuitevly understand how both the machine architecture, and the JVM compiler will affect the code they write. There's too many quirks.  While in theory it's possible to write comparably fast java code(assuming your willing to do sketchy things for memory manipulation related tasks).  In practice it's significantly more difficult to get all the juice out with higher level languages.