首页
学习
活动
专区
圈层
工具
发布

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

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

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

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

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

    86100

    JS if else语句:条件判断语句

    条件判断语句是程序开发过程中一种经常使用的语句形式,和大部分编程语言相同,JavaScript中也有条件判断语句。...JavaScript 中支持以下几种不同形式的条件判断语句:if 语句;if else 语句;if else if else 语句;switc case 语句。...if 语句if 语句是 JavaScript 中最简单的条件判断语句,语法格式如下:if(条件表达式){    // 要执行的代码;}当条件表达式成立,即结果为布尔值 true 时,就会执行{ }中的代码...if else 语句是 if 语句的升级版,它不仅可以指定当表达式成立时要执行的代码,还可以指定当表达式不成立时要执行的代码,语法格式如下:if(条件表达式){    // 当表达式成立时要执行的代码}...; } 运行结果如下图所示:if else if else 语句if 和 if else 语句都只有一个条件表达式,而 if else

    36310

    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

    4.4K30

    MySQL这样写UPDATE语句,劝退

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

    4.2K20

    编程规范 写 if 语句不要任性

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

    2.7K30

    绕过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

    17.6K20

    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;你也可以写成

    42.2K10
    领券