• 简单二分


     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 }
  • 相关阅读:
    Tyvj 1729 文艺平衡树
    送花
    Tyvj 1728 普通平衡树
    [NOI2004]郁闷的出纳员
    [HNOI2004]宠物收养所
    [HNOI2002]营业额统计
    [NOIP2012] 借教室
    无聊的数列
    忠诚
    XOR的艺术
  • 原文地址:https://www.cnblogs.com/jxust-jiege666/p/6539578.html
Copyright © 2020-2023  润新知