自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 算法笔记重点(9)递归

将原问题划分成若干个规模较小而结构与原问题相同或相似的子问题,然后分别解决这些子问题,最后合并子问题的解,得到原问题的解的方法,广义上讲称为分治。严格意义上,子问题数为1的情况称为减治,大于1的情况称为分治。而分治既可以通过递归实现,也可通过非递归实现,递归只是实现分治的一种手段。递归的两个关键是递归边界和递归式。阶乘运算和Fibonacci数列分别是减治和分治的典型例子下面给出一个求全排列的递归函数bool hashtable[maxn]={false};int p[maxn]void ca

2020-06-30 09:00:42 138

原创 算法笔记(8)哈希

在M个数中查找某个数是否出现过,或者在一篇文章中查找一个单词是否出现过,又或者需要统计一篇文章中某个单词出现的次数,最直接的思维就是依据这个单词遍历整篇文章。显然,这种算法的时间复杂度随着文章篇幅的增多时间逐渐增加,那么如何写出一个常数级的查找算法呢?哈希帮我们解决了这类问题。简单的,对于整数查找,我们可以利用bool数组以空间换时间的方式,统计次数则换用int类型即可。那么,问题来了。对于过大的整数,单纯靠消耗空间显得极不明智。所以我们采取了散列函数,将一个较大的整数浓缩为一个唯一的小整数(即H(ke

2020-06-29 16:22:42 145

原创 算法笔记重点(7)排序

排序总会放在任何算法教材的首要部分,这里不写出选择排序,插入排序,冒泡排序,归并排序,快速排序等详细代码,我之前有写过。而又由于C语言的qsort()函数对指针要求较高,所以着重分析C++的sort()函数应用。对待基本数据类型的数组,sort()非常容易搞定,并且默认情况下由小到大排序,那么重点应该就是结构体了。我们在模拟问题时经常需要模拟某个对象的特征,比如学生的姓名分数学号,将这些放入一个结构体再进行sort()。我们用到了cmp函数。bool cmp(T a, T b){ return

2020-06-28 22:18:43 94

原创 算法笔记重点(6)进制转换

这里想到进制转换是为了之后的Hash学习做准备。m进制转换为十进制#include<cstdio>#include<cmath>int main(){ int m,n,id=0; scanf("%d %d",&m,&n); for(int i=0;n>0;i++) { id=id+n%10*pow(m,i); n/=10; } printf("%d",id); r

2020-06-28 22:07:25 166

原创 算法笔记重点(5)黑盒测试

单点测试:PAT为典型例子,每一道题有若干次测试,每次测试都有相应的分数,所以正常情况下我们的程序执行一次即可,对输入输出要求相对较低。多点测试:codeup等多数OJ为典型例子,我们需要一次满足多对输入,并且每次输入需要返回相应的输出,所有输出正确才能得分,否则为0分。多点测试分为三类1.while…EOF型这种输入一般没有明确的结束条件,这要求在文件末尾前一直输入。我们需要用到scanf()的返回值,即在读取失败时返回的EOF(-1)。常见的代码结构是while(scanf(…)!=EOF){}

2020-06-27 20:26:55 208

原创 算法笔记重点(4)时间复杂度

对于敲代码的人,时间复杂度显得尤为重要。那么在理论上判断一个代码是否符合时间要求,应该认为一般的OJ一秒能承受的运算次数为107到108,我们面对一份代码首先估算其大O级别。例如一个O(n2)的复杂度的算法在规模为1000的条件下为106,尚可承受,而规模为100000时达到了1010的恐怖级别,所以在提交前我们心里要有个数,这代码能不能过。...

2020-06-27 20:17:11 382

原创 算法笔记重点(3)浮点数误差

经过一系列计算后的浮点数会发生细小的改变,这将导致==不再适用,下面给出新的解决方案。令eps=1e-8声明浮点数a,b1.相等条件|a-b|<eps2.大于条件a>b+eps3.小于条件a<b-eps4.大于等于条件a>b-eps5.小于等于条件a<b+eps综上,我们认为误差绝对值在eps之内是相等的,那么小于和大于的范围就相应的缩减了。除此之外,我们对pi的定义可以用acos(-1),以达到精准的目的。...

2020-06-27 20:11:10 174

原创 算法笔记重点(2)sscanf与sprintf的应用

曾经为将整数或浮点数与字符串转化而头疼,现在有了很好的工具。在此之前首先看看stringstream的用法,这个适用于string容器。#include<iostream>#include<string>#include<sstream>using namespace std;int main(){ string s; double a; cin>>a; stringstream st; st<&lt

2020-06-27 20:03:39 104

原创 算法笔记重点(1)浮点数的四舍五入

浮点数在以下几种情况采用四舍五入1.printf("%.mf",a);2.cout<<fixed<<setprecision(m)<<a<<endl;3.利用cmath的round()函数,对浮点数四舍五入取整4.利用强制类型转换的功能,即类似于a=(int)(b+0.5)对b四舍五入。5.利用floor()与ceil()函数,采用类似4的技巧对其四舍五入。注意:如需对小数点后若干位取整,则在3,4,5中需要对浮点数进行乘法处理,完成后再还原即可。

2020-06-27 19:53:30 1255

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除