zoukankan      html  css  js  c++  java
  • 判断一个数是否存在一个数组中,二分查找

    #include <cstdlib>
    #include <iostream>
    using namespace std;
    
    
    //全局变量 
    int arr[] = {0,1,2,4}; //测试数组 
    int size = sizeof(arr) / sizeof(*arr); //数组元素个数 
    
    bool exist(int arr[],int k)
    {
            
            int low = 0, high = size - 1;
            //设置一个标志,代表是否存在这个值 
            bool flag=false;
            
            //当找到最后或者第一个元素时,是等号 
            while(low<=high)
            {
                        int mid = (low + high) / 2;                  
                           if(arr[mid] < k)
                           {low=mid+1;}
                           if(arr[mid]==k)
                          { 
                                          //存在表示有这个值,跳出循环 
                                          flag=true;
                                          break;
                          }
                           if(arr[mid] > k)
                           {high=mid-1;}
            }  
         return flag;
    }
    int main(){
        cout<<exist(arr,3)<<endl;
        system("pause");
        return 1; 
    }
  • 相关阅读:
    HDU
    洛谷- P1306 斐波那契公约数
    HDU
    HDU
    POJ3321
    SPOJ
    HDU
    POJ 1236 Network of Schools
    POJ-3169 Layout (差分约束+SPFA)
    POJ-1062 昂贵的聘礼 (最短路)
  • 原文地址:https://www.cnblogs.com/fickleness/p/3106445.html
Copyright © 2011-2022 走看看