自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c#语法基础,面向对象学习总结

输出 console.writeline()输入 console.readline()等待命令 console.readkey()---------------------------------------------------------------------------------------------转义符\n 换行\" 表示一个英文半角的双引号\b 表示一个BackSpace退格键,把前面的一个字符删除\t 表示一个tab建的大空格\\ 表示一个\@ 用在字符串钱有两种.

2021-03-18 19:29:55 123

原创 c#对于虚方法,抽象方法,接口的理解以及代码实现

2021-03-17 21:54:02 101

原创 数据结构笔记:排序

排序的基本概念排序:给定一组记录的集合{r1, r2, ……, rn},其相应的关键码分别为{k1, k2, ……, kn},排序是将这些记录排列成顺序为{rs1, rs2, ……, rsn}的一个序列,使得相应的关键码满足ks1≤ks2≤……≤ksn(称为升序)或ks1≥ks2≥……≥ksn(称为降序)。正序:待排序序列中的记录已按关键码排好序。逆序(反序):待排序序列中记录的排列顺序与排...

2019-12-24 09:50:11 179

原创 数据结构笔记:查找

查找的基本概念列表:由同一类型的数据元素组成的集合。关键码:数据元素中的某个数据项,可以标识列表中的一个或一组数据元素。键值:关键码的值。主关键码:可以唯一地标识一个记录的关键码。次关键码:不能唯一地标识一个记录的关键码。查找 :在具有相同类型的记录构成的集合中找出满足给定条件的记录。查找的结果 :若在查找集合中找到了与给定值相匹配的记录,则称查找成功;否则,称查找失败。静态...

2019-12-24 09:44:35 129

原创 数据结构笔记:图论

图的遍历有两种存储方式:邻接矩阵和邻接表在一些顶点数目比较大(一般顶点个数在1000以上)的情况下,使用邻接表而不是邻接矩阵来存储图。如果是稀疏图,用邻接表,如果是稠密图,用邻接矩阵。深度优先搜索dfs遍历图按深度优先的方式访问所有未被访问的结点,在结点被访问过后标记为已访问dfs(u) {vis[u] = true;for(从u除法道能到达的所有顶点v) if...

2019-12-01 22:33:26 100

原创 数据结构笔记:二叉树

树:n(n≥0)个结点的有限集合。当n=0时,称为空树;任意一棵非空树满足以下条件:⑴ 有且仅有一个特定的称为根的结点;⑵ 当n>1时,除根结点之外的其余结点被分成m(m>0)个互不相交的有限集合T1,T2,… ,Tm,其中每个集合又是一棵树,并称为这个根结点的子树。结点的度:结点所拥有的子树的个数。树的度:树中各结点度的最大值。叶子结点:度为0的结点,也称为终端结点。...

2019-11-23 16:29:02 474

原创 数据结构笔记:字符串和数组

字符串 子串:串中任意个连续的字符组成的子序列。主串:包含子串的串。 子串的位置:子串的第一个字符在主串中的序号。 串的存储结构 顺序串:用数组来存储串中的字符序列。链接串:用链接存储结构来存储串。 模式匹配:给定主串S="s1s2…sn"...

2019-11-09 16:55:47 130

原创 数据结构笔记:栈与队列

栈:限定仅在表尾进行插入和删除操作的线性表。空栈:不含任何数据元素的栈。允许插入和删除的一端称为栈顶,另一端称为栈底。栈的数据类型定义:ADT StackData栈中元素具有相同类型及后进先出特性,相邻元素具有前驱和后继关系OperationInitStack前置条件:栈不存在输入:无功能:栈的初始化输出:无后置条件:构造一个空栈DestroyStack前置条件:栈...

2019-10-27 15:16:37 126

原创 数据结构笔记:顺序表、单链表以及循环链表

线性表顺序表:线性表的顺序存储结构成为顺序表。一般用数组来完成定义,存储值以及线性关系。数组实现线性表,也就是把线性表中相邻的元素存储在数组中相邻的位置,从而导致了数据元素的序号和存放它的数组下表之间具有一一对应的关系。特点:线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素,作用:线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素...

2019-09-21 11:47:20 234

原创 数据结构笔记:关于算法的认知以及模板的定义

数据结构是一组值的集合以及定义于这个值集上的一组操作的总称。算法的特点:1有穷性2确定性3可行性4输入5输出算法描述:自然语言、流程图、程序设计语言、伪代码算法的时间复杂度:只考察当前问题规模充分大时,算法中基本语句的执行次数在渐进意义下的阶,乘坐算法的渐进时间复杂度,通常用O表示。算法的空间复杂度:指算法在执行过程中需要的辅助空间的数量,也就是除算法本身和输入输出数据所占用的空间...

2019-09-21 11:45:06 134

原创 软件开发心得

软件开发心得体会程学设计学习到现在已经做了几个小系统了,通讯录、银行管理等等。功能也从只有最初步的功能到比较完善的地步。我对系统的设计也从一点儿也不懂到了略微懂得皮毛,可以初步设计初步完成一个系统。下面是我对于软件开发的心得:我对于做软件的一般步骤就是1根据要求构思2整理想法初步设计3编写代码4测试数据寻找bug。软件的设计:软件开发的首要要求就是客户提出的,我们需要根据客户提出的要求来...

2019-06-23 15:57:34 351

原创 C++程序设计学习总结

C++课程设计学习总结c++课程设计到现在已经结课了,在这段期间有学习了很多新的知识还有感想。对于大多数知识都从一点儿也不懂到一知半解又到了可以初步运用,但是大部分知识到达熟练掌握还是有一定的差距。所以很多知识还是需要更多的运用更多的练习才能够熟练掌握。在后来的这一部分时间中我学习的知识总共分为三大章:运算符重载、组合与继承、虚函数与多态性。运算符重载:听老师讲,这是c++中最好用的部分了,其...

2019-06-20 11:32:04 2132

原创 ACM最短路径算法

边带有权值的图称为带权图。边的权值可以理解为两点之间的距离。一张图中任意两点间会有不同的路径相连。最短路径就是指连接两点的这些路径中最短的一条。当遇到问题的时候,我们有几种种算法可以有效地解决最短路径问题。有一点需要读者特别注意:边的权值可以为负。当出现负边权时,有些算法不适用。...

2019-05-25 22:51:09 393

原创 ACM图论学习总结二

图的遍历:深度优先与广度优先遍历  从图中某一顶点出发系统地访问图中所有顶点,使每个顶点恰好被访问一次,这种运算操作被称为图的遍历。为了避免重复访问某个顶点,可以设一个标志数组visited[i],未访问时值为false,访问一次后就改为true。  图的遍历分为深度优先遍历和广度优先遍历两种方法,两者的时间效率都是O(n*n)。  深度优先遍历  深度优先遍历与深搜DFS相似,从一个点...

2019-05-22 23:23:04 163

原创 ACM图论基础学习总结一

一、什么是图?  很简单,点用边连起来就叫做图,严格意义上讲,图是一种数据结构,定义为:graph=(V,E)。V是一个非空有限集合,代表顶点(结点),E代表边的集合。二、图的一些定义和概念(a)有向图:图的边有方向,只能按箭头方向从一点到另一点。(a)就是一个有向图。(b)无向图:图的边没有方向,可以双向。(b)就是一个无向图。基本概念:结点的度:无向图中与结点相连的边的数目,称为结...

2019-05-18 22:55:13 229

原创 ACM二叉树学习总结二

二叉树基本概念: 二叉树(binary tree,简写成BT)是一种特殊的树型结构,它的度数为2的树。即二叉树的每个结点最多有两个子结点。每个结点的子结点分别称为左孩子、右孩子,它的两棵子树分别称为左子树、右子树。 前面引入的树的术语也基本适用于二叉树,但二叉树与树也有很多不同,如:首先二叉树的每个结点至多只能有两个结点,二叉树可以为空,二叉树一定是有序的,通过它的左、右子树关系体现出...

2019-05-15 22:38:26 335

原创 ACM树及二叉树学习总结

树的概念: 一棵树是由n(n>0)个元素组成的有限集合,其中:(1)每个元素称为结点(node);(2)有一个特定的结点,称为根结点或树根(root);(3)除根结点外,其余结点能分成m(m>=0)个互不相交的有限集合T0,T1,T2,……Tm-1。其中的每个子集又都是一棵树,这些集合称为这棵树的子树。树的存储结构:方法1:数组,称为“父亲表示法”。  const int m...

2019-05-11 22:59:27 470

原创 ACM数据结构学习小结

数据结构在acm课刚开始的时候已经大体学习过。以下是数据结构的小部分内容。栈:栈是只能在某一端插入和删除的特殊线性表。进行删除和插入的一端称栈顶,另一堆称栈底。插入一般称为进栈(PUSH),删除则称为退栈(POP)。 栈也称为后进先出表(LIFO表)。一个栈可以用定长为N的数组S来表示,用一个栈指针TOP指向栈顶。若TOP=0,表示栈空,TOP=N时栈满。进栈时TOP加1。退栈时TOP减1。...

2019-05-08 22:45:31 231

原创 ACM三分法学习小结

三分法当需要求某凸性或凹形函数的极值,通过函数本身表达式并不容易求解时,就可以用三分法不断逼近求解。类似二分的定义Left和Right mid = (Left + Right) / 2 midmid = (mid + Right) / 2;如果mid靠近极值点,则Right = midmid;否则(即midmid靠近极值点),则Left = mid;当需要作用二分法三分法的时候...

2019-05-04 22:07:24 839

原创 ACM单调队列学习小结

单调队列解释为:队列中元素之间的关系具有单调性,而且,队首和队尾都可以进行出队操作,只有队尾可以进行入队操作。。单调队列的常用操作如下:(1)插入:若新元素从队尾插入后会破坏单调性,则删除队尾元素,直到插入后不再破坏单调性为止,再将其插入单调队列。(2)获取最优(最大、最小)值:访问首尾元素。一组数(1,3,2,1,5,6),进入单调不减队列的过程1入队,得到队列(1);3入队,得到...

2019-05-01 20:43:26 329

原创 ACM位运算学习小结

位运算左移运算符(<<)把一个整型数的所有位向左移动指定的位数,并从右边界移入0。例:14<<2这里的整型数为14,指定的位数为2,所以值为5614转化为二进制为1110,56转化为二进制为111000实际上可以看成14*4左移运算符(>>)同上&(and)相同位的两个数字都为1,则为1;若有一个不为1,则为0。判断二进制下有没有间...

2019-04-27 22:40:58 311

原创 ACM二分法学习小结

1、二分查找 二分查找又称折半查找,它是一种效率较高的查找方法。 二分查找要求:线性表是有序表,即表中结点按关键字有序,并且要用向量作为表的存储结构。不妨设有序表是递增有序的。2、二分查找的基本思想 二分查找的基本思想是(1)首先确定该区间的中点位置:(2)然后将待查的K值与R[mid].key比较:若相等,则查找成功并返回此位置,否则须确定新的查找区间,继续二分查找,具体方法如下:...

2019-04-24 22:38:51 356

原创 ACM搜索深度学习

搜索主要还是分为两类,深度搜索和广度搜索。深搜,简言之就是不撞南墙不回头顾名思义,深度优先搜索所遵循的策略就是尽可能“深”的在图中进行搜索,对于图中某一个顶点V,如果它还有相邻的顶点(在有向图中就是还有以V为起点的边)且未被访问,则访问此顶点。如果找不到,则返回到上一个顶点。这一过程一直进行直到所有的顶点都被访问为止。 DFS可以搜索出从某一个顶点到另外的一个顶点的所有路径。 由于要进行返回的...

2019-04-20 22:50:07 141

原创 ACM搜索学习小结

搜索已经学完一节,现讲述一下搜索的总结。什么是搜索搜索算法是利用计算机的高性能来有目的地穷举一个问题的部分或所有的可能情况,从而求出问题的解的一种方法。相比于单纯的枚举算法有了一定的方向性和目标性。算法是在解的空间里,从一个状态转移(按照要求拓展)到其他状态,这样进行下去,将解的空间中的状态遍历,找到答案(目标的状态)。而状态(state)是对问题在某一时刻进展情况的数学描述,或者是数学抽...

2019-04-17 22:45:50 67

原创 类和对象学习总结

再次经过一段时间的学习,学完了第六章类和对象。类和对象是c++中很是重要的一部分。所以需要学习透彻。对于类和对象的介绍:面向对象系统由一组交互的对象构成,每个对象都有自己的属性和行为,这些对象通过相互之间的消息传递来写作实现系统的功能。对象所属的类型称为类,类是一组具有相同属性和行为的对象的抽象。类的基本思想是数据抽象和封装。数据抽象是一种依赖接口和实现分离程序的技术。类要实现数据抽象和封装,...

2019-04-14 11:28:04 213

原创 递归学习小结

众所周知,递归思想在许多算法里尤为重要,尤其是遍历和搜索里,所以总结下:递归算法的实质是:把求解问题转化为规模缩小了的同类问题的子问题,然后递归调用函数(或子过程)来表示问题的解,通过多次递归调用,最终可求出最小问题的解,然后通过这个最小问题的解返回上层调用,再求出次小问题的解,再返回上层调用,不断重复,最终得到整个问题的解,完成递归操作。注意点:1、使用递归时,必须有一个明确的递归结束条...

2019-04-13 22:48:40 133

原创 区间DP学习小结

区间DP,区间上做动态规划。一个大区间必然由长度不等的小区间合并而来,在合并过程中,最基本也是动态规划的必须原则:满足最优化原理和无后效性原则,所以在确定状态转移方程时,得特别留心这两点。区间DP区别于其它线性DP题的特点是:区间DP通过枚举区间分界点实现状态转移。例题:凸多边形三角划分题意:给定一个具有N(N<=50)个顶点的凸多边形,每个顶点的权值均已知。问如何把这个凸多...

2019-04-10 22:26:25 88

原创 完全背包学习总结

有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 1:f[i][v]=max{f[i-1[vkc[i]]+kw[i]|0<=k*c[i]<=v}2:f[v]=max(f[v],f[v-c[i]]+w[i]);完全背包面临的不是对于第i件物品选不...

2019-04-06 20:53:35 114

原创 0-1背包学习总结

01背包简单说就是0和1就是分为装与不装。题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。思路:这是最基本的01背包问题,之所以称之为01背包问题是指对于每个物品都只有放和不放两种状态,对应的01表示首先我们说一下状态转移方程,最普通的二维数组写法 dp[i][j]=max(dp[i-1][j],dp[i-1][j-c[...

2019-04-03 22:51:50 541

原创 动态规划学习总结二

动态规划从总体上来总结就是一种通过“大而化小”的思路解决问题的算法。并且在这之中并没有什么特定的第一步第二步的步骤,所以从根本上来讲更是一种思想,以大化小,把规模较大的问题分成小的问题。如果用一个题目来总结就是记忆化搜索在一些数据的遍历中(如不重复的路径搜寻问题),为了标记哪些点已经走过,可能需要重新建立一个数组来记录路径。这样十分浪费时间和空间,而我们实际上可以直接对原数组进行处理,用特定...

2019-03-30 22:54:24 71

原创 DP动态规划部分学习总结

这几天学习动态规划,我的理解是DP大致可分为2类,一种是自下而上(也叫递推),另一种是自上而下。这两种方法都可以达到目的。 仔细来讲动态规划是解决多阶段决策问题的一种方法。并且每一步得出的结论都讲影响下一阶段的结果将每一阶段都需要取出最佳结果然后一步步下去得出最终答案。并且动态规划要秉承最优性原理。而最优性原理就是不论初始状态和第一步决策是什么,余下的决策相对于前一次决策所产生的新...

2019-03-27 22:23:05 71

原创 程序设计学习总结

开学到现在已然四周,对于程序设计的学习也已经一个月。在这一个月中也解除了很多新的知识,在这其中的知识中,从迷茫到一知半解又从一知半解到达可以些许运用,最终到可以熟练运用,一直在循序渐进。 指针:持有一个对象的地址,并且通过指针可以间接的操作他所指向的对象。而当其指向的是数组是他指向的是第一个数组元素,而当其自身++的时候就是指向数组的下一个元素。并且它的类型与所指向的元素类型相同。...

2019-03-24 16:41:47 180

原创 ACM贪心算法总结

通过这一段时间对贪心算法的练习,即通过对落单的数、主元素等的编程,我加深了对贪心算法的理解,更加明白如何通过贪心找到其局部最优解。注意:贪心算法不是从整体上考虑问题,它所做出的选择只是在某种意义上的局部最优解。基本思想:通常以把总体分开的方式进行,以依次调整的方式作出相继的贪心选择,每一次的贪心选择将所求问题简化为规模更小的子问题。做题情况:学习贪心算法,所给的15道题中只AC了10道,并...

2019-03-23 22:23:18 399

原创 ACM关于vecrtor的学习

动态数组vectorvector为动态数组,不需要来定义数组的大小所以不用担心数组会越界。用法为:1、定义:动态数组,动态改变储存空间的大小,定义的数组可以没有界限2、应用:头文件#include定义:vector <数据结构> 变量名;如:vector v;操作:empty() – 表示vector是为空 (v.empty() )size() – 返回vector...

2019-03-20 21:43:54 195

原创 ACM关于结构体的学习

结构体 需要用struct来定义。1.首先定义结构体类型,可以是任意结构struct 结构体名称{内容;};例如 直接定义结构体变量struct s{ int a; string b;}o[100];也可以间接定义结构体在定义变量s o[100];在编程中也经常在结构体定义的前面加上关键字"typedef"。例如:typedef struct 结构体名称{内容;}...

2019-03-16 22:57:19 222

原创 ACM算法贪心算法一

贪心算法总的来说就是把整个问题分成几个步骤分别求出其最优解,最终得出整个问题的最优解。所以,贪心的某种意义就是求局部最优解。并且如果一个问题可以同时用几种方法解决的话,贪心算法应该是最好的选择之一。在使用贪心算法时要依次考虑以下步骤:候选集合A:问题的最终解均取自于候选集合A,解集合S:解集合S不断扩展直到构成满足问题的完整解,解决函数solution:检查解集合S是否构成问题的完整解,选择函数...

2019-03-13 22:18:46 167

原创 ACM二

ACM又学了几节课学到了一些新的知识,这些知识只是知道有是不行的,需要及时把这些知识运用到题目中才能熟练掌握。set与multiset 可以看成特殊的数组,两者都可以对数据简单的排列,但是set不允许有重复的数据存在而multset允许重复。在运用输出时一般也用迭代器来指向输出。map和multimap 两者是关联容器并且都是一对一,并且map不允许重复而multimap允许,第一个为关键元素...

2019-03-13 21:44:15 68

原创 ACM一

在acm学习已经三节课了,在学习acm中发现不投入是不行的,繁琐的知识很难理解,所以也需要课后整理才有可能理解透彻知识。在这其中也学到了很多新的知识与类型。首先是栈stack的用法,总的来说就是先进后出操作顶端元素。队列queue 这个是先进先出,从底加从头出,排队。动态数组vector与数组类似不过在其中插入是push_back,移除是pop_back。排序sort,从小到大排,如果需...

2019-03-13 21:43:26 148

原创 程序与设计第一学期学习总结

程序与设计学习总结时光飞快,我们已经在大学过了一个学期也学习了一个学期的程序与设计。在这门课中学习的是c++,这门语言在计算机中有着不可替代的作用,也是计算机最可靠的伙伴。如果想要学好这门语言,仅仅学习课本上的知识是远远不够的,这门语言需要经常动手,在实践中不断完善自己,不断学习新的知识。只有如此,才能发现学习上的漏洞和自己的不足并在之后来弥补。在学习语言时...

2019-01-04 20:16:37 332

原创 数组 学习总结

数组 学习总结学习完数组之后,明白的数组主要运用于计算排序之类的问题。知识主要为:数组类型,数组的定义与初始化,以及对数组名含义的理解。排序、查找、求最大最小值等常用方法。知识:数组是一组具有相同类型的变量的集合。在定义数组的时候不能用变量来定义数组的大小。而数组可以分为多类,例如 int 整型和 char 字符型等都可以。c语言中数组的下标都是从0开始的,所以在...

2018-12-23 13:48:36 174

空空如也

空空如也

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

TA关注的人

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