YTU 2852: 二分查找

网友投稿 518 2022-08-24

YTU 2852: 二分查找

YTU 2852: 二分查找

2852: 二分查找

时间限制: 1 Sec   内存限制: 128 MB

提交: 215

解决: 79

题目描述

输入不多于20个升序排列的整数,以及一个待查找的数key,输出key在序列中的位置(从0开始计位序)。查找采用二分查找的方法进行,请将下面的程序补充完整。

#include using namespace std; const int SIZE=20; int binary_search(int arr[], int n, int k); int main() { int d[SIZE]; int index, key, num=0; cin>>key; while(cin>>d[num]) num++; index = binary_search(d, num, key); if(index >= 0) cout<代码 int binary_search(int arr[], int n, int k) { int i=-1; int low=_____(1)_____,high=_____(2)_____,mid; while(low<=high) { mid=______(3)________; if(arr[mid]==k) { i=mid; break; } else if(_____(4)_____) high=mid-1; else _______(5)__________; } return i; }

输入

先输入要查找的数 下一行输入升序排列的若干整数(不超过20个),以CTRL-Z结束

输出

若要查找的数在序列中,输出其在序列中的位置(从0开始计数),若不能找到,输出NO

样例输入

4523 36 45 76 81 88 89 91

样例输出

2

你  离  开  了  ,  我  的  世  界  里  只  剩  下  雨  。  。  。

#include using namespace std;const int SIZE=20;int binary_search(int arr[], int n, int k);int main(){ int d[SIZE]; int index, key, num=0; cin>>key; while(cin>>d[num]) num++; index = binary_search(d, num, key); if(index >= 0) cout<k) high=mid-1; else low=mid+1; } return i;}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:剖析GitHub员工的任性之源
下一篇:YTU 2858: 编程题AB-骨牌铺方格
相关文章

 发表评论

暂时没有评论,来抢沙发吧~