您的位置:首页 > 其它

N个元素的有序数组A,判断是否有 A[i]=i 存在

2011-11-07 20:01 225 查看
/// <summary>

 //下述算法只对严格单调的整数数组有效,复杂度O(N);

    /// 查找数组中的一个数k,满足a[k] == k

    /// 需保证a数组严格单调上升

    /// </summary>

    /// <returns>找到返回k,找不到返回-1</returns>

    public staticint
FindNumber(int[]a)

    {

        if (a==
null)

            return -1;

        int left =0, right= a.Length;

        while (left+
1< right)

        {

            int mid = left+
(right- left)/
2;

            if (a[mid]>
mid)

                right = mid;

            else

                left = mid;

        }

        return a[left]== left
? left:
-1;

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 null