自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 复杂度分析

算法是指用来操作数据、解决程序问题的一组方法。 衡量不同的算法之间的优劣要从算法所占用的时间和空间两个维度去考量。 时间维度:执行当前算法所消耗的时间(时间复杂度) 空间维度:执行当前算法需要占用的内存空间(空间复杂度) 程序员提出通用的方法进行算法的时间复杂度分析:T(n)=O(f(n)) n:表示数据规模 O(f(n)):表示运行算法所需要执行的指令数,和f(n)成正比。 常见的时间复杂度量级进行大O的理解: 常数阶O(1) 无论代码执行多少行,其他区域不会影响到操作 void swap(int

2021-01-25 12:24:21 60

原创 第四章-散列

散列(hash) 将元素通过一个函数转换为整数,使得该整数可以尽量唯一地代表这个元素。 这个转换函数称为散列函数H,如果元素在转换前为key,那么转换后就是一个整数H(key) key为整数时 (1)直接定址法(重要) H(key)=key或者H(key)=a*key+b 直接把key作为下标或者线性变换 问题:给出N个整数,再给出M个整数,问这M个数中的每个数分别是否在N个数中出现过,其中N,M<=105. 空间换时间。设定bool类型数组hashTable[100010],初始化为false(正整

2021-01-24 12:32:48 114

原创 第六章-sort(C++)

如何使用sort排序 sort函数的使用必须加上头文件“#include”和“using namespace std;" 使用方法: sort(首元素地址,尾元素地址的下一个地址,比较函数) 三个参数前两个必须填,比较函数根据需要填写。不写比较函数,默认对前面给出的区间进行递增排序。 #include<stdio.h> #include<algorithm> using namespace std; int main(){ int arr[6]={9,4,2,5,6,-1}; /

2021-01-22 11:07:35 46

原创 第四章排序笔记

排序 排序笔记 内部排序(数据对象只在内存里进行排序) 外部排序(数对象过多不能同时放入内存,需要借助外存进行排序) 此处只总结内部排序: 选择排序: 简单选择排序: 对一个序列A中的元素A[1]~A[n],令i从1到n枚举,进行n趟操作,每趟从待排序部分[i,n]中选择最小的元素,令其与待排序部分的第一个元素A[i]进行交换,这样元素A[i]就会与当前有序区间[1,i]。n趟操作后,所有元素就会是有序的。 算法逻辑明显:共进行n趟操作,每趟操作选出待排序部分[i,n]中最小的元素,令其与A[i]交换。因此

2021-01-22 09:57:57 63

原创 第三章-字符串处理5901

回文串 题目描述: 读入一串字符,判断是否是“回文串”。 回文串是一个正读和反读都一样的字符串。 输入格式: 一行字符串,长度不超过255 输出格式: 如果是“回文串”,输出“YES”,否则输出“NO” 样例输入: 12321 样例输出: YES #include<stdio.h> #include<string.h> const int maxn=256; bool judge(char str[]){ int len=strlen(str); for(int i=0;i&lt

2021-01-16 12:31:17 79

原创 第三章-进制转换

进制转换:P进制转换为Q进制的步骤 (1)P进制先转换为十进制数y 对于一个十进制数y=d1d2d3…dn,它可以写成这个形式: y=d110(n-1)+d210(n-2)+…+dn 如果p进制数x=a1a2a3…an,那么它写成下面这个形式之后使用十进制的加法和乘法,就可以转换为十进制数y: y=a1p(n-1)+a2p(n-2)+…+an int y=0,product=1; while(x!=0){ y=y+(x%10)*product; x=x/10; product=product*p; }

2021-01-16 12:19:14 297

原创 第三章-图形输出B1036

跟奥巴马一起编程 输入:在一行中给出正方形边长N(3<=N>=20)和组成正方形边的某种字符C,间隔一个空格。 输出:由给定字符C画出的正方形。但是注意到行间距比列边距大,所以为了让结果看上去更像正方形,所输出的行数实际上是列数的50%(四舍五入取整)。 样例输入 10 a 样例输出: aaaaaaaaaa a a a a a a aaaaaaaaaa #include<stdio.h> int main(){ int row,col;

2021-01-15 10:30:50 178

原创 第三章-查找元素

题目描述: 输入一个数n(1<=n>=200),然后输入n个数值各不相同的数,在输入一个值x,输出这个值在这个数组中的下标(从0开始,若不再数组中则输出-1)。 输入样例: 4 1 2 3 4 3 样例输出: 2 #include<stdio.h> const int maxn=210; int a[maxn]; int main(){ int n; int x; scanf("%d\n",&n); for(int i=0;i<n;i++){ scanf("

2021-01-14 17:34:03 59

原创 第三章-简单模拟B1032

挖掘机技术哪家强 题目描述: 为了用事实说明挖掘机技术哪家强,PAT组织了一场挖掘机技能大赛。请根据比赛结果统计出技术最强的那个学校。 输入格式: 在第一行给出不超过10的5次的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从1开始连续编号)及其比赛成绩(百分制),中间以空格分隔。 输出格式: 在第一行中给出总得分最高的学校的编号及其总分,中间以空格分隔。题目保证答案唯一,没有并列。 输入样例: 6 3 65 2 80 1 100 2 70 3 40 3 0 输出

2021-01-14 16:49:27 94

原创 第三章-简单模拟B1001

简单模拟:题目怎么说,你就怎么做 题目描述: 卡拉兹猜想 对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样反复砍下去,最后一定在某一步得到n=1. 此处并非要证明卡拉兹猜想,而是对给定的任一不超过1000的正整数n,简单的数一下,需要多少步才能得到n=1? 输入格式: 每个测试输入包含1个测试用例,即给出自然数n的值。 输出格式: 输出从n计算到1需要的步数 输入样例: 3 输出样例: 5 #include<stdio.h> int main()

2021-01-14 11:59:02 78

原创 第二章-黑盒测试

黑盒测试是指:系统后台会准备若干组输入数据,然后让提交的程序去运行这些数据,如果输出的结果与正确答案完全相同(字符串意义上的比较),那么就称通过了这道题的黑盒测试,否则会根据错误类型而返回不同的结果。其中根据黑盒测试是否对每组测试数据都单独测试或是一次性测试所有测试数据,又可以分为单点测试和多点测试。 单点测试 对单点测试来说,系统会判断每组数据的输出结果是否正确。后台会多次运行代码来测试不同的数据。 #include<stdio.h> int main(){ int a,b; scanf(

2021-01-14 11:40:34 303

原创 第二章-补充

cin与cout C++中的输入输出函数,需要添加头文件“#include”和“using namespace std"才能使用。可以直接进行输入/输出。 1、cin 采用输入运算符”>>"进行输入。 #include<iosteam> using namespace std; int main(){ int n; cin>>n; //输入一个整数n return 0; } 如果同时读入多个变量也是一样的写法,只需要后面使用>>进行拓展即可。 例如下

2021-01-14 10:32:21 85

原创 第二章-结构体

结构体可以将若干不同的数据类型的变量或数组封装在一起,以存储自定义的数据结构,方便储存一些复合数据。 结构体定义 定义一个结构体的基本格式: struct Name{ //一些基本的数据结构或者自定义的数据类型 }; 当需要将一些相关的变量放在一起存储时,只要依次写出它们的数据类型和变量名称。 例如:需要存储一个学生的学号、性别、姓名和专业,就可以这样定义: struct studentInfo{ //stdentInfo是结构体的名字 int id; char gender; char n

2021-01-13 17:56:14 63

原创 第二章-指针

什么是指针 在计算机中,每个变量都会在内存中分配一个空间,每种类型得变量所占得空间不同,(例如int型变量占用4个字节,而long long型变量占用8个字节),计算机中每个字节都会有一个地址,即变量存放的位置,而计算机就是通过地址找到某个变量的。 变量的地址一般指它占用的字节中第一个字节的地址。计算机上一个地址指向一个变量,可以通过地址来找到变量。 C语言中用“指针”来表示内存地址(或者称指针指向内存地址),如果这个内存地址恰好是某个变量的地址,那么称这个指针指向该变量。 在变量前面加上&,就表示

2021-01-13 16:34:53 146

原创 第二章基础知识

第二章 2.4 循环结构 while语句 计算机求解1+2+3+4…+100? #include<stdio.h> int main(){ int n=1; int sum=0; while(n<=100){ sum+=n; n++; } printf("%d",sum); return 0; } while条件判断的真假可以使用的技巧 1、如果表达式是“!=0”,则可以省略“!=0” 2、如果表达式是“==0”,则可以省略“==0”,并在表达式前面添加非运算符"!

2021-01-12 20:14:28 192

空空如也

空空如也

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

TA关注的人

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