二分法查找

  public int BinarySearch(int target,int[] array,int left,int right)
        {
            if (right - left <= 0)
            {
                return -1;
            }
            int binaryIndex = (right+left)/ 2;
            if (array[binaryIndex] == target)
            {
                return binaryIndex;
            }

            if (array[binaryIndex]>target)
            {
                left = 0;
                right = binaryIndex;
            }
            else
            {
                left = binaryIndex;
                right = right - 1;
            }

            return BinarySearch(target, array, left, right);
        }

其中要注意的是:

两个自然数的中间数是多少?

如 5和8中间的数是:

(5+8)/2

而不是

(5-8)/2

posted @ 2012-12-10 16:54  viola  阅读(91)  评论(0)    收藏  举报