程序设计与算法
文章平均质量分 89
依据郭炜老师的课整理和查找网上一些相关算法来完成的
w,ss,b
懒得写
展开
-
程序设计与算法--动态规划
动态规划在我们解题时十分重要,动态规划的思想其实很容易掌握,只要是学会怎样去灵活运用,把题目给出的条件进行拆解,得到“最优子结构”以此来得到递归公式,当然既然用到了递归,减枝也是非常的重要,我们同样也可以把递归转化为递推型。......原创 2022-08-30 16:38:38 · 301 阅读 · 0 评论 -
程序设计与算法---深度优先搜索(DFS)
深度优先搜索其实就是在图上找目标点,以起始的点开始,向每个点进行搜索,直到找到目标点。在实际的解题过程中解题过程中,DFS通常是以回溯的考法最多,也最难,后面列出的题目也都是回溯解法居多,这种解法被称为“万能方程式”。原创 2022-08-23 20:20:06 · 1224 阅读 · 0 评论 -
说说二分查找算法
解法:由于已经给出了方程的系数,所以我们可以计算出该方程在[0,100]内是单调递增的,有且只有一个根,此时我们可以考虑枚举,但这样的写法会有很大的时间复杂度,所以我们可以用二分法在区间中找寻答案。模板一:写一个函数BinarySearch,在包含size个元素的,从小到大排序的int数组a里查找元素p,如果找到,则返回元素下标,如果找不到,则返回-1,要求复杂度O(log(n))如果复杂度为多个n的函数之和,则只关心随n的增长增长得最快的那个函数。对于时间和空间复杂度的计算,也是有一定的方法。......原创 2022-08-14 22:22:40 · 247 阅读 · 0 评论 -
程序设计与算法---枚举
例如求小于N的最大素数我们找不到一个数学公式,使得只要给出N就可以计算出这个数,但我们可以一个一个来列举出来,如我们逐个尝试N-1,N-2.........这样可以非常直观简洁的实现最直白的解题思路,我们在具体解题时,不管题目的难度如何,能用枚举解决的题目还是占大多数的(虽然会超时)。题目很清晰,我们最先想到的是a,b,c,d分别从0列举到N,可是这样子是很不好的,枚举虽然不要动脑筋,但也不能太过直接。我们还可以对程序进行进一步的优化和减枝。......原创 2022-07-21 22:28:28 · 240 阅读 · 0 评论