淡定的小石头

#include<bits/stdc++.h>

using namespace std;


/*


int main()

{

int n,x,a[6000];

cin>>n;

for(int i=1;i<=n;i++)

{

cin>>a[i];

}

cin>>x;

for(int i=1;i<=n;i++)

{

if(x==a[i])

{

cout<<i;

}

}

 } 

 

 */


int main()

{

int n,x,a[6000]={0},mid=2;

cin>>n;

for(int i=1;i<=n;i++)

{

cin>>a[i];

}

cin>>x;

int left=1;

int right=n;

int r=-1;

while(mid!=0)

{

mid=(left+right)/2;

if(a[mid]==x)

{

r=mid;

break;

}

else if(x<a[mid])

{

right=mid-1;

}

else if(x>a[mid])

{

left=mid+1;

}

}

if(r==-1)

{

cout<<-1;

}

else

{

cout<<r;

}

}


 

/*

int a[1000000],x;


int fun(int left,int right);

int mid=2;

int main()

{

int n,r;

left,right;

cin>>n;

for(int i=1;i<=n;i++)

{

cin>>a[i];

}

cin>>x;

r=fun(1,n);

if(r==-1)

{

cout<<-1;

}

else

{

cout<<r;

}

}


int fun(int left,int right)

{

 

if(mid!=0)

{

mid=(left+right)/2;

if(x<a[mid])

{

return fun(left,mid-1);

}

else if(x>a[mid])

{

return fun(mid+1,right);

}

else

{

return mid;

}

}

else

{

return -1;

}

}


评论

热度(2)