首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ChatGPT,为啥二分搜索容易死循环

刚好最近听说了这么一句话,“90%程序员都不对二分搜索”,那就整个二分搜索最常见的问题考考ChatGPT。 ---- 了不起: 为什么二分搜索容易死循环?...ChatGPT: 一个常见的原因是在二分搜索中没有正确处理边界情况,例如: 1、非递归实现中,循环终止条件可能不正确,导致死循环; 2、递归实现中,递归条件可能不正确,导致无限递归。...此外,当待搜索的数组不是有序时,也可能导致搜索结果不正确或死循环。 如果你遇到了这个问题,可以仔细检查你的代码并尝试调试。可以使用打印语句或者调试器来寻找问题所在。...} return -1; } } 1.2 注意点 实数的二分就不用考虑所谓的mid+1和mid-1,因为index是整数是离散的,不是连续精确的,变更区间条件时出现死循环...2.2 注意点 mid取值补上1,是为了防止死循环,当left和right为5和6时,模拟想想。 前驱和后继和条件本身无关,与是否满足条件相关,如果是满足求min即是后继。 需要考虑如何表示无解?

60200
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ChatGPT,为啥二分搜索容易死循环

    刚好最近听说了这么一句话,“90%程序员都不对二分搜索”,那就整个二分搜索最常见的问题考考ChatGPT。 ---- 了不起:为什么二分搜索容易死循环?...ChatGPT:一个常见的原因是在二分搜索中没有正确处理边界情况,例如: 1、非递归实现中,循环终止条件可能不正确,导致死循环; 2、递归实现中,递归条件可能不正确,导致无限递归。...此外,当待搜索的数组不是有序时,也可能导致搜索结果不正确或死循环。如果你遇到了这个问题,可以仔细检查你的代码并尝试调试。可以使用打印语句或者调试器来寻找问题所在。...} return -1; } } 1.2 注意点 实数的二分就不用考虑所谓的mid+1和mid-1,因为index是整数是离散的,不是连续精确的,变更区间条件时出现死循环...2.2 注意点 mid取值补上1,是为了防止死循环,当left和right为5和6时,模拟想想。 前驱和后继和条件本身无关,与是否满足条件相关,如果是满足求min即是后继。 需要考虑如何表示无解?

    53210

    WPS JS宏——For语句

    version 4.4.131.D001.64.190906 (YHKYLIN-OS@Kylin) WPS版本:WPS Office 2019 WPS表格(11.8.2.10533) 一个简单的for循环语句...就这个简单的for循环语句,差点把我整放弃了! 这个语句上面只循环了20次,那是因为我尝试把数字改到50的时候,WPS竟然卡死了! 循环20次的情况下,我尝试多运行了几次,竟然也卡死了!...后来把这个语句单独放到一个新文件里又正常了,然后回到原来的那个文件,删除了一些Sheet和单元格内容后,也正常了,再怎么测试也没复现bug!!...和VBA一样,for语句也有一种for...in的用法: function testForIn() { var arr = new Array(3) for (let i = 0; i < 10;...arr10" for (x in arr) { Debug.Print(arr[x]) } } 但这里的x in arr和VBA是不一样的,在VBA里,这里的x是arr数组中当前遍历值的一个拷贝,而JS

    3.2K30

    python如何try语句

    <语句 #运行的代码 except<名字 : <语句 #如果在try部份引发了'name'异常 except<名字 ,<数据 : <语句 #如果引发了'name'异常,获得附加的数据 else: <语句...1、如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。...3、如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。...try/finally风格 try: <语句 finally: <语句 #退出try时总会执行 python总会执行finally子句,无论try子句执行时是否发一异常。...2、如果在try子句发生了异常,python就会回来执行finally子句,然后把异常递交给上层try,控制流不会通过整个try语句

    1.7K20

    绕过JS爬虫

    http://data.eastmoney.com/jgdy/tj.html       我们希望抓取的是js生成的表格。      ...这种带有js的网站抓取其实不是那么简单的,基本分为那么几种方法,一种是观察页面,有的会有json数据,有的有js代码可以解析目标的url;一种是使用渲染工具;还有一种就是用工具来点击相关button,来抓取...我们希望爬取的是表格中的数据,但是如果我们仔细看一下html代码,会发现,这其实是js生成的,下面这张图是源代码的截图。 ?       这就很尴尬了,怎么办呢?...然后我们就点击第二页、第三页不断的来观察究竟js代码访问了什么后台的url。...pagesize=50&page=1&js=var YnQNqDYj¶m=&sortRule=-1&sortType=0&rt=50585869 http://data.eastmoney.com

    14.9K20

    编程规范 if 语句不要任性

    ---- 程序执行都是由各种各样的语句组成,最常见的有表达式语句和函数调用语句,以及控制语句等。据统计,全世界的程序语句中,条件语句的比例高达67.3%,循环语句也有36.5%。...表达式语句和函数调用很简单,都只有一行,因此只要编程规范上注意下缩进就好。控制语句的花样就多一点,也就是大家最常用的条件语句、循环语句语句。如果不加注意,就会遇到各种样式的ifelse。...如果你是在修改一个文件,参考当前已有格式;如果是新的代码,参考目录下或项目中其他文件的格式,还在徘徊的话,就不要加空格了。...3 switch选择语句 switch语句可以使用大括号分块;空循环体应使用{}或continue。...,暂且不

    2.2K30

    MySQL这样UPDATE语句,劝退

    # 起因 最近,好几次有开发同学在钉钉上问我,比如下图: 问题归纳起来就是:在MySQL里面update一条记录,语法都正确的,但记录并没有被更新… # 结论 小结:在一条UPDATE语句中,如果要更新多个字段...# 现象 刚遇到这个问题的时候,我拿到这条语句直接在测试库里面执行了一把,发现确实有问题,但和开发描述的还是有区别,这里我用测试数据来模拟下: 有问题的SQL语句: update apps set owner_code...看起来,语法是完全没有问题,翻了翻MySQL官方文档的update语法: 看到assignment_list的格式是以逗号分隔的col_name=value列表,一下子豁然开朗,开发同学想要的多字段更新语句应该这样...小结:在一条UPDATE语句中,如果要更新多个字段,字段间不能使用“AND”,而应该用逗号分隔。

    3.2K20

    js插件教程

    button> //这里是插件的代码;我为了方便都写到一个html中了;请把这个script标签中的内容单独写在一个js...window,document,jQuery的映射;方便内部直接调用; //当然你不引用jq的话头部的$和底部的jQuery干掉;你若引用了更过的依赖可以依次添加; //最后面的undefined可不;...号(叹号)或者;(分号)这不是写错了,为了防止那个二货js结束没有分号;而可能发生报错 /* ;function(win,doc,$,undefined){ }(window...function就不调用;对;这里是调用的时候最开始执行的函数 } //;给构造函数addHtml对象原型里添加属性(方法) addHtml.prototype = {//给函数方法...:addHtml,//构造器指向构造函数;这行其实不没啥毛病;不过有时候防止构造器指向Object的情况;你还是装逼写上吧; init:function(){//这里的init;你也可以写成

    35.1K10
    领券