#include <iostream>
#include <string>
using namespace std;
int sort21( int*a ,int n, int num )
{
if(a==NULL|| n==0 )
return -1;
int left = 0, right = n-1;
int midle = 0 ;
while(left<=right)
{
midle = left + (right-left)>>1;//直接平均可能会溢位
if(num == a[midle])
return midle ;
else if(a[midle]<num)
left =midle + 1;
else
right =midle - 1;
}
return -1;
}
int main()
{
int a[] ={ 0,1,2,3,4 ,5,6,7 };
int n =0 ,ret ,num;
n =sizeof( a )/sizeof(a[0]);
cout << "n="<< n<< endl;
for(int i;i<n;i++){
cout << a[i] <<endl;
}
ret =sort21(a,n,5);
cout << ret;
}
二分法实现简单的查找
最新推荐文章于 2023-08-06 20:42:38 发布