首页 > 其他分享 >3-1 在上面有关折半查找的例子中,while 循环语句内共执行了两次测试,其实 只要一次就足够(代价是将更多的测试在循环外执行)。重写该函数,使得在循环内部只执行 一次测试。比较两种版本函数的运行

3-1 在上面有关折半查找的例子中,while 循环语句内共执行了两次测试,其实 只要一次就足够(代价是将更多的测试在循环外执行)。重写该函数,使得在循环内部只执行 一次测试。比较两种版本函数的运行

时间:2023-07-29 11:25:22浏览次数:30  
标签:int high while 循环 low 测试 执行

Archlinux

GCC 13.1.1  20230429

2023-07-29 11:07:02 星期六

 


点击查看代码
#include<stdio.h>


int binsearch( int x, int v[], int n )
{
    int low, high, mid;

    low = 0;
    high = n-1;
    mid = ( low + high )/2;

    while((low <= high) && ( v[mid] != x ))
    {
        if( x<v[mid] )
            high = mid - 1;
        else
            low = mid + 1;

        mid = ( low + high )/2;
    }

    if( x == v[mid] )
        return mid;
    else
        return -1;
}


int main()
{
     int c_in;
     int arr[] = { 1, 2, 4, 8, 16, 32 };
     
     c_in = binsearch( 8, arr, 7 );

     printf("%d\n", c_in);
    


    return 0;
}


 


运行截图:

image

输出正确,就不比较了。

 


小白刚学习C语言,代码质量不高,欢迎评论。

标签:int,high,while,循环,low,测试,执行
From: https://www.cnblogs.com/yuwu/p/17589505.html

相关文章

  • 的接口自动化测试框架实战训练目录
    1.目前市面上实现接口自动化测试行情2.Requests请求方法和传参详解3.Post请求中Data传参和Json传参的差异以及请求头4.Response对象属性和方法详解5.正则表达式提取器和JsonPath提取器的应用6.接口自动化测过实战以及Cookie.TokenSession鉴权7.接口自动化测试框架封装之统一......
  • 栈与循环队列
    1.栈(Stack)是一种具有后进先出(LIFO)特性的线性数据结构。在栈中,元素的插入和删除操作只能在栈的一端进行,通常称为栈顶。栈不支持在任意位置的元素访问,只能访问栈顶的元素。栈的常见操作包括入栈(push)将元素放入栈顶、出栈(pop)将栈顶元素移除,以及获取栈顶元素(peek)等。下面是一个使用Pyth......
  • delete语句执行过慢
    一现象某个数据库经常在某个时间点比如凌晨2点或者白天某些时间段发出如下报警[Critical][prod][mysql]-超200killSQL/分钟[P0][PROBLEM][all(#2)db_data.Com_killdb=XXXX[m]:330610.53333>=3.3][O12019-11-0103:40:00]报警的意思是每分钟超过200个sql被ki......
  • 官网解决-找不到mfc140u.dll,无法继续执行代码
    问题:找不到mfc140u.dll,无法继续执行代码原因:一般都是电脑缺少或丢失了dll,或者没安装对应版本的vc运行库解决:直接去官网下载vc运行库,安装即可直接上Microsoft官网链接:https://answers.microsoft.com/zh-hans/windows/forum/all/%E5%BE%AE%E8%BD%AF%E5%B8%B8%E7%94%A8%E8%BF%90......
  • 2-9 在求对二的补码时,表达式 x &= (x – 1)可以删除 x 中最右边值为 1 的 一个二进制
    ArchlinuxGCC13.1.1 202304292023-07-2910:29:56星期六 点击查看代码#include<stdio.h>#include<stdint.h>intbitcount(uint8_tx){intcount=0;while(x!=0){x&=x-1;count++;}returncount;......
  • iperf3速度测试
    Server端:iperf3-s-i10-p5201客户端: Tcp:iperf3-cx.x.x.x-p5201-t60-P10-RUdp:iperf3--udp-cx.x.x.x-p5201-t60-P10-R测试结果:Tcp下行90mb,udp下行10mb,并且不一会儿伴随着大量丢包,果然udp被qos了。 ......
  • Python TensorFlow循环神经网络RNN-LSTM神经网络预测股票市场价格时间序列和MSE评估准
    全文下载链接:http://tecdat.cn/?p=26562最近我们被客户要求撰写关于循环神经网络的研究报告,包括一些图形和统计输出。自2000年 1月以来的股票价格数据。我们使用的是Microsoft股票。该项目包括:将时间序列数据转换为分类问题。使用TensorFlow的LSTM模型由MSE衡......
  • apue.3e遇到的编译问题(recipe for target 'badexit2' failed)以及ls1.c案例测试
    APUE(慢慢啃这本书)编译问题,网上获得的前辈方法,本地测试可行,仅作记录。1.系统环境2.下载解压tar-zxvf*.tar.gzcd./apue.3emake报错:collect2:error:ldreturned1exitstatusMakefile:31:recipefortarget'badexit2'failedmake[1]:***[badexit2]Error1m......
  • ajax动态加载JS不执行的解决办法
    //第一步:匹配加载的页面中是否含有jsvarregDetectJs=/<script(.|\n)*?>(.|\n|\r\n)*?<\/script>/ig;varjsContained=ajaxLoadedData.match(regDetectJs);//第二步:如果包含js,则一段一段的取出js再加载执行if(jsContained){ //分段取出js正则 varregGetJS=/<sc......
  • 利用pyinstaller发布不依赖python解释器的可执行exe
    现在打包app.py,从Windows命令提示符(cmd)运行:pyinstaller.exe--onefile--windowedapp.py就这么简单。如果打包成功,最终的可执行文件app.exe和任何相关文件将放在dist目录中,如果该目录不存在,将创建该目录。  PyInstallerManualVersionPyInstaller5.1Homepagehttps://pyinstall......