数组A中任意两个相邻元素大小相差1,现给定这样的数组A和目标整数t,找出t在数组A中的位置。

方法:

1、从第i个元素开始找,i=|t-A[0]|,这样在t与A[0]相差很大时可以省去很多无用遍历

2、奇偶相间,只需n/2次,即i+=2

int findpos(int a[],int n,int v)
{
    for(int i = abs(v-a[0]); i < n; i+=2)
        if(a[i] == v)
            return i;
    return -1;
}


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页