- 博客(15)
- 收藏
- 关注
原创 np完全理论
NP完全理论 P,NP,NPC P问题:多项式时间内可解 NP问题:多项式时间内可构造并验证解 NPC问题:任何NP问题都可以在多项式时间被归约到此问题,并且可以在多项式时间内构造并验证此问题的解(同时属于NP与NP-hrad) (最不可能转换为p决定问题的集合) 优化与判定问题 最大团->是否存在大小为K的团 背包问题->是否能够在不超过容量C的前提下,装入物品总价值大于等于K ...
2020-05-12 17:09:33 174
原创 递推算法
1.递推算法:通过已知条件,利用相邻的数据项间的关系(即:递推关系),得出中间推论,直至得到结果的算法。 2.基本思想:把一个复杂的庞大的计算过程转化为简单过程的多次重复。 3.递推与递归的比较:相对于递归算法,递推算法免除了数据进出栈的过程,也就是说,不需要函数不断的向边界值靠拢,而直接从边界出发,直到求出函数值 Fibonacci数列 int Fibonacci(int n) { if (n<0) return -1; int n1=1,n
2020-05-11 17:24:16 302
原创 图
一、图的基本概念 1.什么是图? 有向图与无向图; 顶点 弧:弧尾和弧头 度:出度和入度 顶点 边 邻接点 连通图 完全图:边数=n(n-1)/2 生成树:边数=n-1 2、图的存储方式 对于无向图:存储顶点及边 对于有向图:存储顶点及弧 弧尾———-权值———狐尾 邻接矩阵 一个n顶点图G=(V,E)的邻接矩阵是一个n×n的矩阵,其中每个元素是0或者1. 无向图中元素定义:A(i,j) = 1...
2019-12-02 20:46:25 1002
原创 树和二叉树
树的定义 树:n(n≥0)个结点的有限集合。 树的定义是采用递归方法 树的基本术语 有序树、无序树:如果一棵树中结点的各子树从左到右是有次序的,称这棵树为有序树;反之,称为无序树。 森林:m (m≥0)棵互不相交的树的集合。 同构:对两棵树,若通过对结点适当地重命名,就可以使这两棵树完全相等(结点对应相等,结点对应关系也相等),则称这两棵树同构。 树的抽象数据类型定义 ADT Tree Data ...
2019-12-01 21:42:18 91
原创 数组和字符串
1、串的定义 串(字符串的简称)是由零个或多个字符组成的有限序列 串中任意个连续的字符组成的子序列称为该串的子串 2、串的表示与实现 类似于线性表的顺序存储结构, 串的顺序存储结构是用一组地址连续的存储单元来存储串中的字符序列的。按照预定义的大小,为每个定义的串变量分配一个固定长度的存储区。 3.字符串的越界 char str[10]; strcpy(str,"0123456789"); 在字符...
2019-12-01 21:01:32 185
原创 栈与队列
栈 1.栈是一种线性存储结构,元素遵循“先进后出”,并且只能在栈顶进行插入和删除, 2、栈的相关概念: (1)栈顶与栈底:允许元素插入与删除的一端称为栈顶,另一端称为栈底 (2)压栈:栈的插入操作,叫做进栈,也称压栈、入栈。 (3)弹栈:栈的删除操作,也叫做出栈。 3、栈的常用操作为: (1)弹栈,通常命名为pop (2)压栈,通常命名为push (3)求栈的大小 (4)判断栈是否为空 (5)获取...
2019-11-17 19:18:37 102
原创 线性表
线性表的特点:有限个数;逻辑上有顺序性;每个表元素都是单个元素;表元素类型皆相同;元素具有抽象性 顺序表的优点:1:存储密度高;2:元素可以随机读取;3:存储位置可以简单的使用公式来表示 链表的优点:1:适合随机的插入和删除操作;2:存储空间大小不需要提前设定;3:可以进行动态存储 单链表:线性表的链式存储称为单链表,它不是连续的存储空间,元素之间是通过指针进行联系。我们通常使用“头指针...
2019-09-23 21:26:22 85
原创 知识总结
重载是有规则的,首先,“重载运算符”是“重载”,而不是“定义”,所以只能改变一个C++中已有的运算符,而不是定义一个本来没有的运算符。 C++只能重载C++中已有的运算符.如: / % ^ & | ~ ! = < > += -= *= /= % ^= &= |= << >> >>= <<= == !...
2019-06-23 22:01:34 79
原创 课程总结
总结 这一学期,自己在学习上没有像高中那样严格要求自己,虽然没有迟到,逃课,旷课,但也没有一直勤奋的学习。有些课在努力,有些课则有些应付了事。而在课下的自我学习,自己有在努力,却易受影响,没有努力坚持。对于不懂的问题,没有深刻的探究。在期末的复习阶段,没有好好的复习,直接导致成绩不理想。现在反思这一学期的学习,总结起来,自己开始两个月在努力,后来却渐渐松懈,而这也给自己敲响了警钟,但也给自己以后的...
2019-06-23 21:43:36 110
原创 类
类的定义 ***:类定义是以关键字 class 开头,后跟类的名称。类的主体是包含在一对花括号中。类定义后必须跟着一个分号或一个声明列表。例如,我们使用关键字 class 定义 Box 数据类型 1 定义成员函数 类定义是提供给更多不同用途的程序共享的,并不受单个程序应用的影响而“优化”。 特别的switch语句不允许使用。 类中的函数一般为内联函数,即使没有明确用inline标明。 在类之...
2019-04-14 17:42:46 93
原创 总结
*** 语言基础 在c++中有4种运算符明确规定了运算对象的求值顺序。分别是:“&&”、“||”、“,”、“?:”。 运算符的结合性是指相同优先级的运算符在同一个表达式中,且没有括号的时候,运算符和操作数的结合方式,通常有从左到右 结合和从右到左结合两种方式。假设是一个运算符,又有表达式abc,如果是左结合的,那么该表达式被解析为(ab)c,如 果...
2019-03-23 22:15:13 142
原创 上学期总结
**c语言基础 ** (https://blog.csdn.net/qq_43627363?t=1) c++代码语句分为:内置类型,名字,变量,操作符,标量,字符串,预处理指示(如#include)等 变量定义:(变量在第一次定义时被声明) int i; 函数定义:(有函数体的函数声明就成了函数定义) float f(float a) { return a + 1; } 有了声明就必须有定义,有了...
2019-01-04 16:47:55 353
原创 数组
数组## 标题 数组包括一位数组和二维数组都是由数组名加上常量组成也可以是const定义的变量斜体样式 例如 int a[];或者 const int[]; 数组,从字面上理解就是有 有数的组合。描述一组相同数据。 数据的创建与初始化 数据的出现一定要初始化,初始化分为静态初始化动态初始化 例如 int arr1[3] = {1, 2, 3}; int arr2[] = {1, 2, 3}; 动态...
2018-12-22 19:08:10 187
原创 循环结构
循环结构主要解决累加和问题分为三种情况 1for 2.while 3.do_while 三个循环语句的区别 在循环次数的情况下更适合使用for循环 在不知道循环次数的情况下适合使用while或者do-while循环,如果有可能一次都不循环应考虑使用while循环,如果至少循环一次应考虑使用do-while循环 简单的来说 for——明确循环次数时使用 while——明确循环条件时使用 do···w...
2018-12-09 09:57:24 237
原创 C++语言初学和分支结构
1**知识点 c++代码的编写一般包括预处理命令,c++程序一般由语句构成例如下面所提到的声明语句和执行语句复合语句等语句的构成是变量加分号;才能构成一个完整的语句二例如条件等中括号后面就不需要加分号 c++程序的输入和输出一般用cin cout也可以用scanf printf 现实生活中的运算符号和电脑编程上的运算符号的相互转换例如!代表非 c++的分支...
2018-11-09 09:09:08 493
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人