算法进阶
文章平均质量分 66
算法小白的进阶之路
漠漠离殇
要么奋斗,要么死亡
展开
-
算法进阶(三)——递归
递归与循环是程序设计中基础的环节,相对于循环,递归总是更神秘一些。1|0一、递归的实质在程序中,递归的实现往往是通过程序压栈来实现的,执行方法时,如果仍然存在子递归,则将父级方法中的全部信息压入栈中,保存这部分数据;当子递归执行完毕后,从栈中取出父递归,并将子递归作为参数继续执行。因此递归执行的过程其实就是压栈、出栈的过程2|0二、举例从一个数组中找到它的最大值参考牛客网题目:https://www.nowcoder.com/questionTerminal/10f59d863390原创 2021-08-07 14:23:30 · 216 阅读 · 0 评论 -
算法进阶(二)——对数器
目录一、设计对数器1、有一个你想要测试的方法a2、实现一个绝对正确但是复杂度不好的方法b3、实现一个随机样本产生器4、实现比对方法5、把绝对正确的方法和我们自己实现的方法对比多次来验证方法是否正确6、如果有一个样本使得对比出错,那么打印样本,分析是哪个方法出错7、当样本数量很多对比结果仍然正确,那么可以确定方法已经正确了对于某一个问题,我们设计了一个算法的实现方式,如果直接提交测试,那么可能会因为某些条件不满足而导致code失败,那么我们考虑是否可以设计一个程序,用于生成原创 2021-08-06 15:23:00 · 285 阅读 · 0 评论 -
算法进阶(一)——时间复杂度
目录1、常数操作2、时间复杂度3、算法流程好坏的评价标准1、常数操作一个操作如果和数据量没有关系,每次都是在固定时间内完成,叫做常熟操作2、时间复杂度时间复杂度是一个算法流程中,常数操作数量的指标。常用O(读做big O)来表示。在常数操作数量的表达式中,只要最高阶项,不要低阶项(包含后面加的常数,常数也可以认为是低阶项),也不要高阶项的系数;通过这样操作之后的部分,如果记为表达式f(N),那么时间复杂度就是O(f(N))举例:f(N) = N^2/100+10*原创 2021-08-06 15:21:19 · 356 阅读 · 0 评论