The array goes through several phases:
First you will see a random array.
Next it will go through a quick-sort routine. (This quicksort has been slowed down so you can follow it). What will be displayed is the "partition" part of the method. The elements blocked off in blue are outside of the range that the current partition call is looking at. The elements in green are the not sorted yet range. The elements in red are those known to be larger or equal to the current value (which is on the top of the array in a red block). The elements uncoloured are those smaller than the current value. (The current value moves to be above the array element currently being compared).
The final phase is the binary chop. Here elements in Green are known to be smaller than the search value, elements in red larger than it, and elements uncoloured are yet to be searched. The value trying to be found is in the red block tracking up and down the array (its where the 'middle' element is).