首页 > 其他 > 详细

简单二分

时间:2017-03-12 22:55:07      阅读:169      评论:0      收藏:0      [点我收藏+]
 1 #include <iostream>
 2 
 3 using namespace std;
 4 //upper_bound(a, arr + 10, 7) - a;
 5 int search(int *a, int l, int r, int key)
 6 {
 7     int mid;
 8     while(l <= r)
 9     {
10         mid = (l + r) / 2;
11         if(a[mid] == key) return mid;
12         if(a[mid] < key) l = mid + 1;
13         if(a[mid] > key) r = mid - 1;
14     }
15     return -1;
16 }
17 int upper_bound(int *a, int l, int r, int key)
18 {
19     int mid;
20     while(l <= r)
21     {
22         mid = (l + r) / 2;
23         if(a[mid] <= key) l = mid + 1;
24         if(a[mid] > key) r = mid - 1;
25     }
26     return -1;
27 }
28 
29 int main()
30 {
31     int a[] = {1,2,3,3,4,6,7,7,8,8,9};
32     int l = 0, r = 10;
33     int key;
34     cin >> key;
35     int pos = search(a,l,r,key);
36     cout << "key:" << "a" << "[" << pos << "]" << endl;
37     return 0;
38 }

 

简单二分

原文:http://www.cnblogs.com/jxust-jiege666/p/6539578.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!