zoukankan      html  css  js  c++  java
  • 折半查找

    阿里笔试的时候考了,回来写了下。

    #include <iostream>
    
    using namespace std;
    
    
    
    int BinarySearch(int array[], int lenght, int key)
    {
        
        
        int low = 0; 
        int high = lenght - 1;
        int mid;
        while (low <= high){
            mid = (low + high)/2;
            if(array[mid] == key){
                
                printf("%d
    ",array[mid]);
                return array[mid];
                }
            else if(array[mid] > key)
                high = mid - 1;
            else 
                low = mid + 1;
        }
         
        return -1;
    }
    
    
    void test0()
    {
        int array[10] = {0,1,2,3,4,5,6,7,8,9};
        if(BinarySearch(array, 10, 5) == 5)
        {
            printf("-------------------------passed
    ");
        }
        else
        {
            printf("-------------------------failed
    ");
        }    
    }
    
    void test1()
    {
        int array[10] = {0,1,2,3,4,5,6,7,8,9};
        if(BinarySearch(array, 10, 15) == -1)
        {
            printf("-------------------------passed
    ");
        }
        else
        {
            printf("-------------------------failed
    ");
        }    
    }
    void test2()
    {
        int array[1] = {0};
        if(BinarySearch(array, 1, 15) == -1)
        {
            printf("-------------------------passed
    ");
        }
        else
        {
            printf("-------------------------failed
    ");
        }    
    }
    void test3()
    {
        int array[1] = {0};
        if(BinarySearch(array, 1, 0) == 0)
        {
            printf("-------------------------passed
    ");
        }
        else
        {
            printf("-------------------------failed
    ");
        }    
    }
    void test4()
    {
        int array[10] = {0,1,2,3,4};
        if(BinarySearch(array, 5, 4) == 4)
        {
            printf("-------------------------passed
    ");
        }
        else
        {
            printf("-------------------------failed
    ");
        }    
    }
    int main()
    {
        test0();
        test1();
        test2();
        test3();
        test4();
    }
    ________你所记的,都是假的。
  • 相关阅读:
    使用Astah画UML类图经验总结
    Qt的四个常见的图像叠加模式
    获取Linux时间函数
    DBus学习网站
    线程属性pthread_attr_t简介
    Secure CRT 自动记录日志log配置
    MySQL的group_concat()函数合并多行数据
    MySQL的Limit详解
    异步查询json传日期格式到前台,变成了时间戳的格式
    启动studio报错Gradle error
  • 原文地址:https://www.cnblogs.com/pudding-ai/p/3676741.html
Copyright © 2011-2022 走看看