http://www.cnblogs.com/darejoy/archive/2010/05/27/1745871.html
- private static int find(int[] arySource, int target, int start, int end)
- {
- if (start == end)
- {
- if (arySource[start] == target)
- {
- return start;
- }
- else
- {
- return -1;
- }
- }
- else if (start > end)
- {
- return -1;
- }
- int curIndex = -1;
- curIndex = (start + end) / 2;
- int middleValue = arySource[curIndex];
- if (target == middleValue)
- {
- return curIndex;
- }
- else if (target < middleValue)
- {
- return find(arySource, target, start, curIndex - 1 );
- }
- else
- {
- return find(arySource, target, curIndex + 1, end);
- }
- }