自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 零散知识点整理

善用ctrl+f三目运算符 / 条件运算符 / ?/ ? :/pos = (pos > 20)? pos-10:pos+10等同于if(pos > 20){ pos = pos - 10;}else{ pos = pos + 10;}

2018-10-27 15:18:35 223

原创 【数据结构】十字链表和邻接多重表的构造图的方法(手动构造非代码)

【十字链表-用于有向图】定点表结点:data:数据内容firstin:以该顶点为尾的第一个弧结点(A→B)firstout:以该顶点为头的第一个弧结点(A→B)实际上对于选边没有一个特定的规则,所以firstin/out的结点可能不同边表结点:tailvex:尾域,表示弧尾。(一般来讲就是顶点表自己)headvex:头域,表示弧头。(如A→B,A尾tailvex,B为headve...

2019-10-29 17:26:35 404

原创 【数据结构】串的模式匹配(KMP算法)

什么是串线性存储的一组数据特殊操作集:求串的长度比较两串是否相等两串相接求子串插入子串匹配子串删除子串匹配子串目标:给定一段文本string:s0s1……sn-1给定一个模式:pattern = p0p1 …… pm-1求 pattern 在 string 中出现的位置这里的pattern可能会很长,所以直接简单粗暴的那种匹配方式在这里不是特别合适因此可以写一个...

2019-05-28 21:26:18 435 1

原创 【数据结构】散列查找

部分copy散列查找by萝卜头LJW以及浙大数据结构视频学习后得出why为什么要用散列查找?what什么是散列查找?解决冲突有哪些方法?how如何评估查找?散列函数如何设计?为什么要用散列查找?顺序查找 时间复杂度 O(N)二分查找(前提有序) 时间复杂度 O(logN)二叉搜索树 时间复杂度 O(h),h 是树高,最好情况 h = logN,最差 h = N 。二叉平...

2019-05-28 11:39:51 1316

原创 【数据结构】各种排序算法&各种排序算法的比较

冒泡排序(Bubble Sort):对于一串数字,如3 2 5 9 6 4 1从3的位置开始往后进行 如果被比较数比3小,那么那个数就“浮上去”,即与3进行交换,此时变成 2 3 5 9 6 4 1再从第二个位置开始,即3和5比,顺序正常第三个位置,5和9比,顺序正常第四个位置,9和6比,6比9小,所以6“浮上去”,此时变成2 3 5 6 9 4 1第五个位置,9和4比,4比9小,所...

2019-05-25 21:29:32 6870 1

原创 【数据结构】树-哈夫曼树与哈弗曼编码

层层if判断就像是一棵一直往下的树,这种树叫做“判定树”。如果90分以上的人很多,那么想得到grade = 5的结论,在这之前还需要进行4次判断,有点麻烦,还不如直接把这个判断放到if()中,作为首选判断条件更好如果考虑到成绩分布能够计算出平均查找效率就是比例 × 第几次判断 = 3.15修改判定树能优化查找效率,因此可以通过修改判定树来优化查找效率。这就是哈夫曼树的思想A...

2019-05-20 16:56:09 498

原创 【数据结构】图-最短路径问题

最短路径问题的抽象·在网络中,求两个不同顶点之间的所有路径中,边的权值之和最小的那一条路径这条路径就是两点之间的最短路径(shortest path)第一个顶点为源点(source)最后一个顶点为终点(destination)问题分类:单源最短路径问题:从某固定源点出发,求其到所有其他顶点的最短路径。(有向)无权图(有向)有权图多源最短路径问题:求任意两顶点间的最短路径无权图的...

2019-05-19 17:21:55 5081 1

原创 【数据结构】图的遍历——深度优先搜索DFS、广度优先搜索BFS

深度优先搜索(Depth First Search)DFS给定一个图,里面有8个灯泡,给定一个起点,要求把里面的灯泡全部点亮,请问应该如何操作先给其标注1~8,然后1是起点(已点亮),接下来的步骤是:从1出发,1的连通点为3个:2、5、7,1可以向其中任意一点前进并开灯,假如向2走到了2点,2的连通点为:1、3,由于1已经点亮了并且3没点亮,因此可以向3走到了3点,3的连通点情况与2类...

2019-04-20 20:22:55 765

原创 【数据结构】树-堆

1.什么是堆背景:优先队列:特殊的“队列”,取出元素的顺序是依照元素的优先权(关键字)大小,而不是元素进入队列的先后顺序。堆:用完全二叉树进行存储,特点:任何一个结点的值都比其根节点大(小),如果是按照关键字大的来删除,那么直接删除根节点就可以了特性:1.结构性:用数组表示的完全二叉树2.有序性:任一节点的关键字是其子树所有节点的的最大值(或最小值)最大堆(MaxHeap),也称“大顶...

2019-04-16 20:06:46 343

原创 【数据结构】树-平衡二叉树的调整(RR,LL,LR,RL)新增代码实现

平衡二叉树的定义:为空树或者它的左子树和右子树都是平衡二叉树,且左子树和右子树的高度差的绝对值不超过1如图,第三个就是错的,因为7的右子树高度为0,左子树高为2,BF(T)= 2不满足要求h=3、4、5类似,谨记:树的左右子树依然是平衡二叉树通过推算能得出:当一个结点数量为N组成的平衡二叉树,其高度能达到logn平衡二叉树的调整:RR旋转对于Mar,May组成的二叉树,然后准...

2019-04-09 15:43:51 8090 1

原创 【数据结构】树-二叉树的遍历

先序遍历先序遍历过程:1.访问根节点(输出其值)2.持续先序遍历其左子树,直到没有左子树后,退回上一节点3.先序遍历其右子树一次,再回到2不难看出这是类似走迷宫并且还有退回的一个方法,所以不难想到用递归来做。递归实现:每走到一个新的点就将其输出,否则退回上一层的函数中图例:从A开始,先输出A,再往左走,输出B,继续走输出D。D之后的D->Left == NULL,所...

2019-03-22 09:57:19 151

原创 PAT (Basic Level) Practice 1068 万绿丛中一点红

乙级1068要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点-> 独一无二,在图中只存在一个,不重复并且该点的颜色与其周围 8 个相邻像素的颜色差充分大-> 充分大,但是=0,并且这样的点只有一个,也是可以的(测试点5)还有一个非常关键的信息(百度后才发现):判断是否重复用O(m*n)->接近O(n²)是不会超时的↑这个如果能发现那就很简单了……stru...

2018-12-19 21:59:40 478

原创 PAT (Basic Level) Practice 1054 求平均值

乙级1054注意审题!其实应该算是一个简单模拟题,重点是审题当合格数只有1的时候,输出的字符串是number而不是numbers(测试点3)因为输入的东西什么都可以有,所以用字符串保存输入的值进行判断长度没必要考虑,1是因为测试点没有考,主要是不知道000000123.2这种用例符不符合出题人的“心思”负号、小数点的位置,负号若有肯定是第一位,小数点若有肯定不能跟在负号后面。我实...

2018-12-03 17:08:50 327

原创 PAT (Basic Level) Practice 1030 完美数列

乙级1030实在想不出来该怎么在不暴力的情况下写出这题……无奈百度,感谢原作者的思路提供,非常有帮助!PAT 乙级 1030 完美数列(分治策略思考)by csdn-FDProcess主要是那张gif看懂了就豁然开朗首先排序(基本)然后以第一位数为min,再从数组最后一位倒序寻找符合要求的数为止,此时的长度就是数组长+1,先记为第一个max后来都用max的长度为搜索度量,对数组进行...

2018-12-02 15:50:40 183

原创 PAT (Basic Level) Practice 1025 反转链表

乙级1025

2018-12-02 15:41:25 263

原创 PAT (Basic Level) Practice 1050 螺旋矩阵

乙级1050第一次看到时间限制200ms以为是找规律,找了半天没找到,后来才觉得这应该是模拟题,模拟题意将数字“螺旋式”填充进去1.m x n的确定遍历找最大公约数如果是i~N遍历的话 循环到最后出来的值必然是m,然后N/m出来的就是n,并且m必然>n,举个栗子 就像11质数,遍历到最后i=N,那么这时候m=i,必然最大还有个剪枝的好方法,这题不会在这上面刁难人的,所以怎么做都行:循...

2018-11-29 18:09:14 158

原创 PAT (Basic Level) Practice 1015 德才论(algorithm sort(begin, end, compare), vector<elementtype>使用

乙级1015阅读理解题,读懂就好一共有四类学生“才德全尽”、“ 德胜才 ”、“ “才德兼亡”但尚有“德胜才” ”、“过线学生”,存储数据的方法,可以用结构体数组,也可以用vector(一种动态数组)。前者写起来代码量略多占内存大,后者占内存小,代码量少每次将数据读入后判断,放入相应的学生类别中然后输出之前,还要对其进行德分&gt;才分&gt;学号的比重进行排序坑点1.输入输出数据量很...

2018-11-21 14:27:15 186

原创 PAT (Basic Level) Practice 1003 我要通过!(两种解法)

乙级1003这题和HOJ3788一样,故把那边的sample也拿过来:题意好理解,就对条件3解释一下:如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a、 b、 c 均或者是空字符串,或者是仅由字母 A 组成的字符串。就相当于是先对aPbATca进行操作成aPbTc,这一个新的字符串再对条件1、2、3判断,对于这时候的条件3,aPbTc又是一个新的“aPbATca...

2018-11-20 23:00:18 282

原创 PAT (Basic Level) Practice 1040 有几个PAT

乙级1040如果顺着想,找到一个P,开始寻找下一个A,然后继续遍历有几个T,遍历完回去从第二个A继续遍历有几个T再加上去,直到A全部遍历完,这是一轮。一个for是P,一个for是A,一个for是T,复杂度都至少O(n³)了,且时间限制是150ms,肯定超时,所以这个方法不可取正确思路:对于每一个AT,都可以和一个P组成PAT,那么先考虑AT的组成,顺着想肯定不可能,那么就逆着想试试:题目...

2018-11-19 18:25:51 167

原创 C语言程序设计 学习笔记 链表

接可变数组但如果我们可以使用BLOCK,将其都拼接在一起,并不是用上面的方法复制粘贴。每一个BLOCK会有一个单元指向的是下一个BLOCK的地址,这样就不会有上述的问题了所以对于一个单元,它里面应该分成两部分:1.数据2.下一个单元的地址(指针)这样指向的下一个数据结构也应是如此。直到最后一个单元,保存的是数据,地址用一个标记标志它已经没有指向下一个地方了当然最开始,还需要一个指针...

2018-11-18 16:28:00 325

原创 C语言程序设计 学习笔记 可变数组(链表基础)

用C语言实现一个可以变大小的数组(动态数组)需求:1.当数据量不够的时候,它能自动扩张2.我能够随时看到其目前的size3.能够访问它的单元1.创建数组2.释放数组3.求数组目前大小4.读取指定位置5.inflate 膨胀 -&gt; 扩张数组代码+笔记:#include &lt;iostream&gt;#include "array.h" #include &lt;s...

2018-11-18 11:30:04 461

原创 C语言程序设计 学习笔记 文件输入输出、二进制文件

概念性内容比较多,直接看视频吧unix下(我没用过unix所以就原封不动抄下来了)对于一个编译好的程序&gt; xx.in 可以将scanf的数据保存进去&gt; xx.out 可以将printf的数据保存进去用于查看对于&lt;stdio.h&gt;下,也有自带的文件输入输出函数...

2018-11-17 16:26:38 307

原创 PAT (Basic Level) Practice 1034 有理数四则运算

乙级1034题意简单粗暴的模拟题,就是非常复杂首先,我是将数字分成输入的a1b1c1、a2b2c2,以及输出的a3b3c3,c代表的是带分数的整数部分,如果有负数&amp;&amp;c有值,将负数赋予c,这样便于后期输出其次是理好各种细节处理1.化简及其效率(测试点4就是测试效率)2.假分数转换成带分数3.负数、分子为0、带分数的整数部分为0、计算结果 这四种输出情况4.计算时的...

2018-11-17 15:28:23 178

原创 C语言程序设计 学习笔记 格式化输入输出

格式化输入:scanf:%[flag]type格式化输出:printf:%[flags][width][.prec][hIL]type对于flags,表示的是标志,可以使用的内容如下:举例事例:int main(){ printf(&quot;%9d\n&quot;,123); printf(&quot;%-9d\n&quot;,123); return 0;}输出结果是: 12312...

2018-11-14 15:29:15 852 1

原创 C语言程序设计 学习笔记 12.3 多个源代码文件、头文件、声明

我们经常在做“分而治之”的事情(多个.c文件):1.main()里的代码太长了适合分成几个函数2.一个源代码文件太长了适合分成几个文件3.两个独立的源代码文件不能编译成可执行的程序对于(1),我们可以举以下例子:有个主函数main.c,有另外一个函数max.c(求最大值)#include&lt;stdio.h&gt;int max(int a,int b);int main(){...

2018-11-14 14:17:29 1819

原创 C语言程序设计 学习笔记 宏定义

编译预处理指令#开头的是编译预处理指令它们不是C语言的成分,但是C语言程序离不开它们#define用来定义一个宏如#define PI 3.14159这样PI这个东西就是3.14159的值在编译过程中,计算机会把代码中出现的PI全部换成3.14159也可以有如下定义#define FORMAT "%f\n"那么,形如printf(FORMAT,2*PI*3.0);实际...

2018-11-10 23:49:50 374

原创 C语言程序设计 学习笔记 结构、类型定义

结构体基本struct structname { //自行定义};//分号不要忘了指向结构的指针:struct date{ int month; int year; int day;} myday;date *p = &amp;myday;//赋值:(*p).month = 2;//更简便的方式:p-&gt;month = 2;用例:指针参数struct poi...

2018-11-08 22:38:53 157

转载 ACM学习大纲

1 推荐题库• http://ace.delos.com/usaco/美国的OI 题库,如果是刚入门的新手,可以尝试先把它刷通,能够学到几乎全部的基础算法极其优化,全部的题解及标程还有题目翻译可以baidu 一个叫NOCOW 的网站。• http://livearchive.onlinejudge.org/上面有全部的赛区真题,绝大部分都可以提交,不适合当题库刷,不过在这里找题非常方便。...

2018-11-06 21:44:54 363

转载 PAT考试大纲/如何刷pat(想要在pat甲级拿80到90分)

乙级(Basic Level)考生应具备以下基本能力:1· 基本的C/C++的代码设计能力,以及相关开发环境的基本调试技巧;2· 理解并掌握最基本的数据存储结构,即:数组、链表;3· 理解并熟练编程实现与基本数据结构相关的基础算法,包括递归、排序、查找等;4· 能够分析算法的时间复杂度、空间复杂度和算法稳定性;5· 具备问题抽象和建模的初步能力,并能够用所学方法解决实际问题。甲级(A...

2018-11-06 21:44:03 20164 4

原创 PAT (Basic Level) Practice 1022 D进制的A+B(栈的初次应用)

乙级1022掌握二进制那一套转换流程就可以了,对于任何进制都是这么操作的由于输出是倒序输出,所以我想到了使用堆栈输出,对于堆栈的使用方法可见我上一条博文:#include使用方法简介第一次递交的时候返回部分正确,仔细想发现应该将=0的情况也输入进去代码实现:#include&lt;stdio.h&gt;#include&lt;string.h&gt;#include&lt;ios...

2018-11-04 10:58:08 212

转载 #include<stack>使用方法简介

原博文:#include使用方法简介 by csdn: wardseptember栈的定义栈被实现为容器适配器,它是使用特定容器类的封装对象作为其基础容器的类,提供了一组特定的成员函数来访问其元素。 元素从特定容器的“后面”被推入/弹出,这被称为堆栈的顶部。成员函数Member functions(constructor)Construct stack (public member...

2018-11-04 10:42:51 518

原创 C语言程序设计 学习笔记 字符串(IV)(字符串函数,字符串搜索函数)

对于&amp;lt;string.h&amp;gt;库,有如下常用函数:strlenstrcmpstrcpystrcatstrchrstrstrstrlensize_t strlen(const char *s);返回s的字符串长度(不包括结尾的\0)代码实现:#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;string.h&amp;gt;int main(int a...

2018-11-03 23:29:50 454 1

原创 C语言程序设计 学习笔记 字符串(III)(putchar,getchar)

putcharint putchar(int c);向标准输出写一个字符返回写了几个字符,EOF(-1)(End Of File)表示写失败getcharint getchar(void);从标准输入读入一个字符返回类型是int是为了返回EOF(-1)表示输入结束windows --&gt; ctrl+cunix --&gt; ctrl+d代码举例:#include&lt;s...

2018-11-03 23:15:11 413

原创 C语言程序设计 学习笔记 字符串(II)(字符串输入输出,字符串数组,程序参数)

字符串输入输出:char str[8];scanf("%s",&amp;str);printf("%s",str);scanf表示读入一个单词(到空格、tab、回车为止)scanf是不安全的,因为这样不知道要读入的内容的长度,在一些情况中会出现问题:#include&lt;stdio.h&gt;void f(){ char s1[8]; char s2[8]; scanf("...

2018-11-03 22:46:57 2262

原创 PAT (Basic Level) Practice 1021 个位数统计 (Program received signal SIGSEGV, Segmentation fault 解决方法)

乙级1021第一眼我还以为是背包问题(因为没学过背包有点害怕)后来仔细看了下发现这个比背包简单太多了各个月饼有总重和总售价,在这里取单价,根据性价比最高的购买就好对于每个月饼,可以用struct保存它的总价、单价、重量,再排序一下就好注意格式输出,C的格式输出非常方便易用代码实现:#include&lt;stdio.h&gt;#include&lt;iostream&gt;#in...

2018-10-31 20:15:21 266

原创 PAT (Basic Level) Practice 1019 数字黑洞

乙级10191.必须格式输出,用int的话不方便,建议用char[4]2.由于必须是最大减最小,所以输入数意义并不大(输入1234和1243结果都是一样),都要进行一次变大的排序和变小的排序3.输入是0~9999,并不是只是四位,需留意(被坑了一次,会报超时)4.字符相减出来的ascii码直接是结果,要正确保存的话需要再添加一个’0’#include&lt;stdio.h&gt;#i...

2018-10-30 22:40:31 248

原创 C语言程序设计 学习笔记 字符串(I)

字符数组:char word = ['h','e','l','l','o','w','o','r','l','d','!'];这是一个字符数组,它的单元是word[0] = h,word[1] = e,word[2] = l……但是这不是C语言的字符串,因此不能用字符串(接下来会讲)的方式计算。字符串应该是这样:char word = ['h','e','l','l','o','w',...

2018-10-30 22:36:51 323

原创 C语言程序设计 学习笔记 动态内存分配(malloc)

如果输入程序时,先告诉你个数,然后再输入,要记录每个数据(类似动态数组)C99之前应该怎么做呢?malloc()函数的作用就在此:int *a = (int*)malloc(n*sizeof(int));malloc()函数的作用是向内存申请一个n*sizeof(elementtype)的内存,并返回地址,申请过来的这个大小的内存,可以直接理解为新建了一个a[n]的数组使用malloc...

2018-10-27 17:11:25 796

原创 C语言程序设计 学习笔记 指针运算

C语言程序设计 指针运算一个指针加1=?用代码试验一下:#include&amp;lt;stdio.h&amp;gt;int main(){ char ac[] ={0,1,2,3,4,5,6,7,8,9}; char *p = ac; printf(&quot;p = %p\n&quot;,p); printf(&quot;p+1 = %p\n&quot;,p+1); return 0;}p = 000000000062F...

2018-10-27 16:06:30 239

原创 归并排序 学习笔记(第一次如此了解递归)

归并排序 @bilibili正月点灯笼首先先讲一下归并排序的基本操作方法给定一个数组,有两部分,两部分的数组都是已经排好序了的,如:arr[] {2,8,9,10,4,5,6,7};1.我们记该数组最左边的下标为L,最右边的为R,中间(若偶数就靠右)的为M有 L = 0 , R = 7 ,M = 42.以M为界将原数组分成两个有规律的数组left和rightleft[] {2,8,9...

2018-10-24 23:04:58 428

空空如也

空空如也

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

TA关注的人

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