public int find(int[] values, int key)
        {
            int low = 0;
            int high = values.Length - 1;
            int i = 0;
            while (true)
            {
                i = (low + high) / 2;
                if (values[i] == key)
                {
                    return i;
                }
                else if (low > high)
                {
                    return -1;
                }
                if (values[i] > key)
                {
                    high = i - 1;
                }
                else
                {
                    low = i + 1;
                }
            }
        }
posted on 2008-03-26 10:52  blogsweb  阅读(100)  评论(0)    收藏  举报