第三天:算法入门与逻辑链训练(目标:350分,累计850分)
今日任务:
1. 完成3道排序题(冒泡、选择、插入)+ 3道查找题(线性查找、二分查找),分值200-300分;
2. 每道题写完后,用注释标注“时间复杂度”(如冒泡排序O(n²),二分查找O(logn)),对比不同算法的效率差异。
今日感悟:
二分查找的“左边界右边界”终于搞懂了!一开始总在“mid=(left+right)//2”还是“mid=(left+right+1)//2”上纠结,后来画了数轴模拟:找“第一个大于x的数”用前者,找“最后一个小于x的数”用后者——可视化真的是逻辑题的救星。但今天也发现,自己写排序时总习惯“硬写”,比如冒泡排序里重复写了3层循环(其实2层足够),说明对算法的“核心逻辑”理解还不够透。350分里,有一道题用了两种算法提交:冒泡排序超时,换成选择排序才过,这让我真切感受到“算法效率”不是纸上谈兵,是拿分的关键。
明日计划:
1. 做5道250-350分题,加入“结构体与指针”(C语言)或“字典与列表嵌套”(Python)题型;
2. 针对“算法优化”,重写今天2道超时题,尝试用更简洁的逻辑减少循环层数。