无标题无名氏No.65033572 返回主串
2025-01-18(六)15:58:16 ID:qk3CGp4 回应
( ゚∀。)放寒假,零编程基础开始看网课学C的打卡串
无标题无名氏No.65243422
2025-02-10(一)16:48:34 ID: qk3CGp4 (PO主)
day1
( ゚∀。)循环学完了在巩固练习
发明二分法找数据真是天才啊……
一开始觉得判断条件是左界与右界是否相等就行了,后面才知道即使相等也有可能答案刚好是这个相等的数
而且这个情况只对于最大值有用,所以理论上可以直接特殊情况特殊讨论
但老师直接改成了判断大于小于从而包含了所有情况
( ゚ᯅ 。)怎么想出来的先不提,这种小但致命的bug我自己根本就调试不出来,好绝望。
无标题无名氏No.65243483
2025-02-10(一)16:54:57 ID: qk3CGp4 (PO主)
>>No.65243422
试图解释逻辑:
二分法查找的“最差情况”:找到最后刚好剩两个挨着的数。
由于实行整数除法,再次求中值,则中值就是较小数。若查找的是较小数,直接输出。若是较大数则左界加一,进入下一轮循环,此时左界=右界=要查找的值。
( ゚∀。)啊我推翻了自己,所以也不一定是最后一个数才有的特殊情况,具体什么情况满足我也不太清楚,我猜是在整个数组中靠近1/2、1/4、3/4、1/8……位置的数据吧。
无标题无名氏No.65243579
2025-02-10(一)17:08:32 ID: qk3CGp4 (PO主)
>>No.65243483
对于找不到的数据:1.先落入在夹着这个值的两个值之间找的情况。由于上述整数除法机制,得出中值一定是较小值。2.再落入最后左右界相等的情况。由于1,要找的一定会比中值小,右界在中值的基础上-1翻过左界,出错,从而找不到。
无标题无名氏No.65243608
2025-02-10(一)17:12:00 ID: qk3CGp4 (PO主)
>>No.65243579
我不理解这么巧妙的思路到底谁可以不通过结果推过程而是直接正向思维地想出来……
无标题无名氏No.65243655
2025-02-10(一)17:16:44 ID: qk3CGp4 (PO主)
>>No.65243608
而老师讲的给我的感觉是,理所当然地就该这么想
从来如此,便对吗!(;´Д`)
无标题无名氏No.65255910
2025-02-11(二)23:06:27 ID: qk3CGp4 (PO主)
>>No.65250110
(〃∀〃)谢谢肥师!
前期一直记笔记结果发现进度很慢,也可能是我不会做高效率的笔记,也许得像上面肥哥建议的一下去学学markdown……思来想去决定先注重自己敲了,这个一直在坚持,希望能快点成长
感觉自己能想出来的都能做,但原创的代码都很弱智,又慢又臭又长
(比如别人要实现一行字从两头向中间擦除的效果,用读取的数组和一个等长空白数组之间换换位就可以轻易实现,而我想了半天,决定从左往右一个个打,奇数偶数还得分开处理)
ᕕ( ・_ゝ・)ᕗ
由此可见我逻辑没什么天赋,只能未来多看多学了
无标题无名氏No.65255925
2025-02-11(二)23:07:35 ID: qk3CGp4 (PO主)
day1
(`・ω・)难得的困意,感觉良好的生物钟在向我招手!既然如此明早再学嵌套好了!