生活日渐枯燥,学习愈渐烦闷,没什么可说的就讲讲最近的收获吧.
最近学习越来越吃力,很多东西都开始加深学习了,而对于算法也算是入了门,但根基还是太浅,所掌握的知识太少对于很多算法知识仍不了解,像二分搜索,大整数乘法,Strassen矩阵乘法,棋盘覆盖,合并排序,快速排序,线性时间选择,最接近点对问题,循环赛日程表,汉诺塔等等,在做算法题是磕磕碰碰遇到了很多问题,查看题解仍然看不懂,现在的的学习进入了枯燥期。
在二分搜索有一些收获,二分查找的作用是减少程序运行的时间,而要求是有序数组,二使用方法是先找到数组中中间的元素,如果要查找的元素比中间元素小,则排除中间元素右侧的所有元素,如果比中间元素大,则排除左侧所有元素。然后递归再对剩下的元素进行二分查找。有优点也有缺点,缺点则是对于数组的要求和插入删除的麻烦。既然说到了递归那就再讲一句,递归,就是在运行的过程中调用自己。要求则是子问题须与原始问题为同样的事,且更为简单,不能无限制地调用本身,须有个出口,化简为非递归状况处理,并且终止条件必须在递归最开始的地方。如图: