- 博客(15)
- 收藏
- 关注
原创 作业
一、课堂作业1.铺方砖#include<iostream>using namespace std;int main(){ int n,i,j,a[101]; cout<<"input n:"; cin>>n; a[1]=1;a[2]=2; cout<<"x[1]="<<a[1]<<endl; cout<<"x[2]="<<a[2]<<endl; for (i=3;
2020-08-26 20:07:25
295
原创 六、回溯算法
基本思想:回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择。满足回溯条件的某个状态的点称为“回溯点”。基本步骤:针对所给问题,确定问题的解空间:首先应明确定义问题的解空间,问题的解空间应至少包含问题的一个最优解 确定结点的扩展搜索规则以深度优先方式搜索解空间,并在搜索过程中用剪枝
2020-08-26 20:06:53
212
原创 五、贪心算法
在求最优解问题的过程中,依据某种贪心标准,从问题的初始状态出发,直接去求每一步的最优解,通过若干次的贪心选择,最终得出整个问题的最优解,这种求解方法就是贪心算法。贪心算法不是从整体上考虑问题,它所做出的选择只是在某种意义上的局部最优解,而由问题自身的特性决定了该题运用贪心算法可以得到最优解。...
2020-08-26 20:06:20
385
原创 四、动态规划
动态规划的基本思想将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。我们可以用一个表来记录所有已解的子问题的答案。不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。设计动态规划法的步骤1.找出最
2020-08-26 20:05:50
102
原创 三、递归与分治策略
递归算法 :程序直接或间接调用自身的编程技巧称为递归算法。递归需要有边界条件、递归前进段和递归返回段。 当边界条件不满足时,递归前进; 当边界条件满足时,递归返回。注意:在使用递增归策略时,必须有一个明确的递归结束条件,称为递归出口,否则将无限进行下去。优缺点:优点:把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。缺点: 递归算法解题的运行效率较低。在递归调用过程中,系统为每一层的返
2020-08-26 20:05:18
249
原创 二、递推算法
特点:一个问题的求解需一系列的计算,在已知条件和所求问题之间总存在着某种相互联系的关系,在计算时,如果可以找到前后过程之间的数量关系(即递推式),那么,从问题出发逐步推到已知条件,此种方法叫逆推。无论顺推还是逆推,其关键是要找到递推式。这种处理问题的方法能使复杂运算化为若干步重复的简单运算,充分发挥出计算机擅长于重复处理的特点。EQ1:数字三角形。编一个程序计算从顶到底的某处的一条路径,使该路径所经过的数字总和最大。只要求输出总和。 1、 一步可沿左斜线向下或右斜线向下走; 2、 三
2020-08-26 20:04:41
172
原创 绪论
二、继承继承就是将两个类含有的相同的部分写成基类,然后将基类继承到派生类。继承分为public继承、private继承、protected继承。三种继承各有不同public继承,将基类的私有数据继承到派生类,但在派生类中不可见,基类protected数据继承到派生类的protected数据中,将基类的public数据继承到派生类的public数据中。protected继承,将基类的protected数据和public数据继承到派生类的protected 数据中,将基类的private数据继承到派生
2020-08-26 20:02:16
198
原创 继承与多态
继承继承就是将两个类含有的相同的部分写成基类,然后将基类继承到派生类。继承分为public继承、private继承、protected继承。三种继承各有不同:public继承,将基类的私有数据继承到派生类,但在派生类中不可见,基类protected数据继承到派生类的protected数据中,将基类的public数据继承到派生类的public数据中。protected继承,将基类的protected数据和public数据继承到派生类的protected 数据中,将基类的private数据继承到派生类
2020-05-20 13:22:20
232
原创 STL~
STLSTL说明:定义集合类型(STL中不同数据结构)变量,数据元素类型在尖括号内说明,通过变量名.成员函数去执行具体功能。一.动态数组(vector)1.操作: v.empty()------返回bool型,表示动态数组是否为空v.size()------返回vector中元素个数v.push_ back(a)------将元素a插入最尾端v.pop_back------将最尾端元...
2020-04-29 07:36:56
127
原创 第一部分总结
1、递归算法把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题。在层层分解时,如果有多种情况,要分别考虑。和其他函数区别是:递归先处理结束条件。(1)[else] (else加括号表示可选项,else可加可不加无影响)。(2)typedef为C语言的关键字,使用目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。(3)半数集问题可加一...
2020-04-06 19:26:45
171
原创 类和对象
一、课堂笔记:类的定义 :(1)类是对具有相同属性和行为的一类客观事物的概括描述。是用户自定义的数据类型(程序设计语言角度)(2)类的定义包括行为和属性两个部分。(3)属性以数据表示,行为通过函数实现。类第一个字母大写C,起名要见名示意数据成员私有,只可以在类内看见,成员函数公有需要在类外实现...
2020-04-06 19:26:18
673
原创 运算符重载
1、定义:对于一些复杂数据类型,在数据定义时,根据数据类型特点,对运算符赋予新的含义,便于复杂数据类型像简单数据类型一样进行基本操作。分为:成员函数重载、友元函数重载成员函数重载(默认第一个操作数是当前对象,有时操作数不是当前对象所以引入了友元函数)(1) 成员运算符函数比友元运算符函数少带一个参数(后置的++、–需要增加一个形参)。(2) 双目运算符一般可以被重载为友元运算符函数或成...
2020-04-06 19:25:36
334
原创 week two(标准库类型+指针和引用)
一、标准库类型string1.1string 表示可变长度的字符序列。字符串是对象。string 类支持字符串对象的各种操作:(1)各种初始化方式(2)字符串之间的复制、比较、连接(3)查询字符串长度和判断字符串是否为空(4)访问字符串中的单个字符使用string 类要包含头文件 < string >1.2string s1, s2; //创建两个空字符串对象...
2020-04-06 08:54:32
250
原创 week one (递归算法+复合数据类型)
目标:1.熟悉面向对象相关知识;2.熟练运用c++内容编写面向对象程序代码;3.了解软件开发的基本流程,学会面向对象软件开发方法;4.能够开发小型软件系统。一、递归算法程序直接或间接调用自身的编程技巧称为递归算法(Recursion)。直接或间接调用自身的函数称为递归函数。特点:把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题。基本思想:层层分解。1.1递归1....
2020-04-06 08:53:46
424
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人