c语言编程题,帮帮我,谢谢

源码导航 课程设计 1

已知一个长度为2015的整型数组,数组里的数据的大小为递增关系,请编写一个函数找到数组中值为2015的数,并返回该数在数组中的位置,未找到则返回-1。

回复

共2条回复 我来回复
  • 毕设港湾
    这个人很懒,什么都没有留下~
    评论
     int position(int a[2015])
    {
        int k = 2015;
        int low, high, mid;
        low = 0;
        high = 2015 - 1;
        while (low <= high) {
            mid = (low + high) / 2;
            if (k > a[mid]) {
                low = mid + 1;
            }
            if (k < a[mid]) {
                high = mid - 1;
            }
            if (k == a[mid]) {
                //从第1位开始算的位置
                return (mid + 1);
                //从第0位开始算的位置
                //return mid;
            }
        }
        return -1;
    }
    
    0条评论
  • 代码货栈
    这个人很懒,什么都没有留下~
    评论

    第一种方法:直接从头到尾遍历一次数组即可,时间复杂度为O(n) 第二种方法:二分查找法,时间复杂度为O(logn)

    有思路了,写代码就比较简单了,就这

    0条评论

发表回复

登录后才能评论