![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
InSighT__
这个作者很懒,什么都没留下…
展开
-
算法基础 -- 递归
递归一个函数调用其自身,就是递归递归和普通函数调用一样是通过栈实现的递归的作用替代多重循环解决本来就是用递归形式定义的问题将问题分解为规模更小的子问题进行求解替代多重循环例题:N皇后问题n皇后问题:输入整数n, 要求n个国际象棋的皇后,摆在n*n的棋盘上,互相不能攻击,输出全部方案。输入一个正整数N,则程序输出N皇后问题的全部摆法。输出结果里的每一行都代表一种摆法。行里的...原创 2019-08-14 15:40:01 · 149 阅读 · 0 评论 -
算法基础--枚举
枚举 是基于逐个尝试答案的一种问题求解策略例题一:生理周期(摘自北大郭炜老师慕课程序设计与算法二)题目描述:人有体力、情商、智商的高峰日子,它们分别每隔 23天、28天和33天出现一次。对于每个人,我们想 知道何时三个高峰落在同一天。给定三个高峰出现 的日子p,e和i(不一定是第一次高峰出现的日子), 再给定另一个指定的日子d,你的任务是输出日子d 之后,下一次三个高峰落在同一天的日子(用距...原创 2019-07-16 11:10:46 · 257 阅读 · 0 评论 -
算法基础--分治
分治就是将问题的一个实例划分为两个或更多个较小的实例(这些较小的实例通常也是原问题的实例),一直持续划分实例,直至问题规模小到可以轻松获得答案为止。实际上这也可以说是一种递归的思想。二分查找(所查找的序列必须有序,查找时间复杂度O(logn) )在包含size个元素的、从小到大排序的int数组a里查找元素p,如果找到,则返回元素下标,如果找不到,则返回-1。二分查找函数非递归版本:int ...原创 2019-08-27 10:20:47 · 297 阅读 · 0 评论 -
算法基础--递归2
基础概念:算法基础–递归1排列生成器:任务描述:设有集合S={a1,…an},生成该集合中元素的所有排列容易想到,S的所有排列即ai+S/{ai}的所有情形,这正符合递归形式的定义下面先用vector传值实现算法:#include <iostream>#include <vector>#include <algorithm>using names...原创 2019-09-17 22:43:58 · 203 阅读 · 0 评论 -
算法基础--动态规划1
在之前学习分治时,我们曾提及很多时候使用分治(递归)的方式解决问题时会导致大量重复计算,导致时间复杂度非常高,而多数情况下解决这种情况的办法就是动态规划,下面给一个例子:73 88 1 02 7 4 44 5 2 6 5在给出的形如上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。路径上的每一步都只能往正下或右下走。只需要求出这个最大和即可,不必给出具体路径...原创 2019-09-21 09:19:16 · 194 阅读 · 0 评论