![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 68
关于算法的学习整理
季沐晴
希望文章对你有帮助٩(๑^o^๑)۶
展开
-
算法整理一——算法特性
目录一、算法特性1、什么是算法?2、算法五大特性?3、一个算法的优劣可以用时间复杂性和空间复杂性来衡量4、算法与程序的关系5、常用的描述算法的方法一、算法特性1、什么是算法?是对特定问题求解步骤的一种描述,是指令的有限序列。2、算法五大特性?输入、输出、有穷性、确定性、可行性3、一个算法的优劣可以用时间复杂性和空间复杂性来衡量4、算法与程序的关系程序是使用某种程序设计语言对算法的具体实现,是对算法的精确描述,可在计算机上运行。 程序可以是无穷的,而算原创 2022-02-17 16:28:32 · 257 阅读 · 1 评论 -
算法整理二——STL
一、STL概述标准模板库(Standard Template Library)简称STL,是 C++最有特色、最实用的部分之一,高度体现了软件的可复用性。 是所有C++编译器和所有操作系统平台都支持的一种库 STL由一些可适应不同需求的集合类(collection class),以及在这些数据集合上操作的算法(algorithm)构成。 STL内的所有组件都由模板(template)构成,其元素可以是任意类型 库(library)是一系列程序组件的集合,它们可以在不同的程序中重复使用。库中组件.原创 2022-02-17 16:45:00 · 605 阅读 · 0 评论 -
算法整理三——递推
目录递推算法概述一、求菲波那契数列二、汉诺塔(Tower of Hanoi)问题三、猴子吃桃四、数字三角形(顺推法)五、骨牌铺满方格六、吃糖果七、蜜蜂路线八、昆虫繁殖【这题有点点难哦】九、位数问题十、分苹果十一、踩方格十二、爬楼梯(openjudge题目)递推算法概述递推/递归既可以理解成是一种算法思想,也可以理解成是一种算法的实现方式 分治算法策略主要通过递归实现,大规模问题分解成小规模问题;动态规划算法主要通过递推实现 递归和递推的原创 2022-02-23 10:53:32 · 6983 阅读 · 3 评论 -
算法整理四——递归
目录一、递归概述一、求n!二、斐波那契数列三、汉诺塔问题四、猴子摘桃问题五、十进制转换为二进制六、逆序(或正序)输出一个正数中的每一位数七、集合的全排列【一点点不好理解】八、整数划分问题 九、递归求平方和函数(openjudge题目)一、递归概述(1)分治算法策略主要通过递归实现,大规模问题分解成小规模问题可以理解为分治是一种算法思想,递归是实现这种思想的一种手段分治法的设计思想:将一个难以直接解决的大问题,分解成一些规模较...原创 2022-02-23 11:17:12 · 1010 阅读 · 1 评论 -
算法整理五——分治
目录一、分治概述二、二分搜索技术二分搜索:二分搜索技术-找数对二分搜索技术-排序且不重复输出三、循环赛日程表四、棋盘覆盖五、选择问题(掌握线性时间选择法解决此问题)六、输油管问题七、半数集问题九、寻找中位数(快速排序版 openjudge题目)一、分治概述分治法的设计思想:将一个难以直接解决的大问题,分解成一些规模较小的相同问题,以便各个击破,分而治之 分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题原创 2022-02-23 13:18:11 · 1566 阅读 · 0 评论 -
算法整理六——动态规划
一、概述基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。 动态规划算法的有效性依赖于问题本身所具有的两个重要性质:最优子结构、重叠子问题1、最优子结构:当问题的最优解包含了其子问题的最优解时,称该问题具有最优子结构性质。2、重叠子问题:在解问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算多次。动态规划算法(自底向上)正是利用了这种子问题的重叠性质,对每一个子问题只解一次,而后将其解保存在一个表格中,在以后尽可能多地利用这些子问题的解。原创 2022-02-23 13:43:13 · 4404 阅读 · 0 评论 -
算法整理七——贪心算法
目录一、概述二、活动安排问题三、背包问题四、最优装载问题(件数最多)五、删数问题五、汽车加油问题七、果子合并(openjudge题目)一、概述适合于贪心算法求解的问题具有:贪心选择性质、最优子结构性质 贪心算法可以获取到问题的局部最优解,不一定能获取到全局最优解 贪心算法总是作出在当前看来最好的选择;并且每次贪心选择都能将问题化简为一个更小的与原问题具有相同形式的子问题。 贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望原创 2022-02-23 14:00:11 · 3001 阅读 · 0 评论 -
算法整理八——回溯算法
概述以深度优先的方式系统地搜索问题的解的方法称为回溯法。 回溯算法是深度优先策略的典型应用,回溯算法就是沿着一条路向下走,如果此路不通了,则回溯到上一个分岔路,再选一条路走,一直这样递归下去,直到遍历完所有的路径。 回溯算法的解空间结构可以组成成子集树(0-1背包问题、全排列)、排列树。会画出解决某个问题的解空间树,比如会画出描述3个物品的背包问题的解空间树等旅行商问题就是一颗排列数4.使用回溯法解题,通常包括的三个步骤(1)针对所给问题,定义问题的解空间;..原创 2022-02-23 14:17:55 · 6693 阅读 · 0 评论 -
算法整理九——分支限界算法
一、概述回溯算法是深度优先,那么分支限界法就是广度优先的一个经典的例子。回溯法一般来说是遍历整个解空间,获取问题的所有解,而分支限界法则是获取一个解(一般来说要获取最优解) 分支限界算法课件的P19-P21 理解分支限界算法中也会利用约束函数和限界函数剪去无效的分支,提高搜索效率。 使用分支限界算法解决:计算细胞个数 知道单源最短路径问题、装载问题(最大装载量)、0-1背包问题、旅行商问题可以使用分支限界算法解决即可二、计算细胞个数矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为原创 2022-02-23 14:22:47 · 1785 阅读 · 0 评论 -
十——算法总结
这一秒不放弃,下一秒就会有希望!原创 2022-02-23 14:28:04 · 356 阅读 · 1 评论 -
算法题目1——进制转换题目
题目一:问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。 【注意】 输入的十六进制数不会有前导0,比如012A。 输出的八进制数也不能有前导0。16进制转8进制先用1化4方法,将十六进制化为二进制;再用3并1方法,原创 2022-03-04 21:25:38 · 945 阅读 · 0 评论 -
算法题目2
说明:1、蓝桥杯题目提交很大可能会因为格式问题导致不能通过,甚至得0分,所以如果没有通过可以改一下格式。2、题目思路有借鉴CSDN其他大佬文章,但是找不到原文链接了,如有冒犯私聊马上删。题目1:问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的原创 2022-03-05 20:30:53 · 176 阅读 · 0 评论 -
算法题目3——字母图形
问题描述利用字母可以组成一些美丽的图形,下面给出了一个例子:ABCDEFGBABCDEFCBABCDEDCBABCDEDCBABC这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。输入格式输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。输出格式输出n行,每个m个字符,为你的图形。我的代码#include<iostream>#include<algorithm>#include<bi原创 2022-03-07 20:32:20 · 162 阅读 · 0 评论 -
算法题目4——DP
题目一:问题描述 共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。输入格式 一行两个正整数n和m输出格式 一个实数P表示答案,保留4位小数。样例输入2 3样例输出0.7500拿到这题第一个思路是排列组合求概率,由题目可知当n=1时概率p为1.n>m p=0.当n>m时,概率p为0动态规划p[i][j]代表买i枚里面有j种的概率拿到每一种的概率p=1/n1、if i<j dp[i][j.原创 2022-03-08 11:59:10 · 410 阅读 · 0 评论