为了账号安全,请及时绑定邮箱和手机立即绑定

C/C++算法 (二分查找)

标签:
C C++ 数据结构

/
二分查找
作者:Zhihang
(附:这是俺滴原创,盗用请看本程序最底下)
/

include<iostream>
include<algorithm>

using namespace std;

int erfen(int array[],int n,int ans){
sort(array,array+n);
int left=0;
int right=n-1;
while(left<=right){
int mix=left+(right-left)/2;
if(ans==array[mix])
return mix;

    if(ans<array[mix])            
        right=mix-1;

    else if(ans>array[mix])
        left=mix+1;
}

return -1;

}

int randomArray(int n,int left,int right){
assert(left<=right);
int
array=new int[n];
srand(time(NULL));
for(int i=0;i<n;i++){
array[i]=rand()%(right-left+1)+left;
}
return array;
}

int* testerfen(string name,int array[],int n,int left,int right){
int zhao=rand()%(right-left+1)+left;
int clock_start=clock();
erfen(array,n,zhao);
int clock_end=clock();
cout<<name<<": "<<double(clock_end-clock_start)/CLOCKS_PER_SEC<<endl;
}

int main(){
const int n=10000000;
int *array=randomArray(n,1,n);

testerfen("二分查找",array,n,1,n);

return 0;

}

//先Ctrl+A 再Ctrl+C 最后Ctrl+V

点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
软件工程师
手记
粉丝
141
获赞与收藏
112

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消