自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 分冶算法

分冶策略: 分治策略是对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同。递归地解这些子问题,然后将各子问题的解合并得到原问题的解。分治法在每一层递归步骤: 1.分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题; 2.解决:若子问题规模较小而容易...

2020-05-07 21:39:26 817 1

原创 递归算法

定义:程序直接或间接调用自身的编程技巧称为递归算法(Recursion)。递归算法的优点: 一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归算法的使用: 递归需要有边界条件...

2020-05-03 11:45:41 363 3

原创 递推算法

递推算法:所谓递推,是指从已知的初始条件出发,依据某种递推关系,逐次推出所要求的各中间结果及最后结果。其中初始条件或是问题本身已经给定,或是通过对问题的分析与化简后确定。递推类型:1、顺推:所谓顺推法是从已知条件出发,逐步推算出要解决的问题的方法叫顺推。如斐波拉契数列,设它的函数为f(n),已知f(1)=1,f(2)=1;f(n)=f(n-2)+f(n-1)(n>=3,n∈N...

2020-05-03 11:12:50 1092

原创 Floyd算法 最短路径

Floyd算法思想Floyd算法用于求每一对顶点之间的最短路径问题:给定带权有向图G=(V,E),对任意顶点vi和vj,求顶点vi到顶点vj的最短路径。 Floyd算法的基本思想是:假设从vi到vj的弧(若不存在从vi到vj的弧,则权值为∞)是最短路径,然后进行n次试探。首先比较vivj和viv0vj的路径长度,取长度较短者作为从vi到vj中间顶点的编号不大于0的最短路径。在路径上再增加一个顶...

2019-12-02 21:56:51 1897 1

原创 Dijkstra算法 最短路径

Dijkstra算法思想Dikstra算法用于求单源点最短路径问题:给定有向图G=(V、E)和源点v∈V,求从v到G中其余各顶点的最短路径。Dikstra算法的基本思想是:将顶点集合V分成两个集合,一类是生长点的集合S,包括源点和已经确定最短路径的顶点;另一类是非生长点的集合V-S,包括所有尚未确定最短路径的顶点,并使用一个待定路径表,存储当前从源点v到每个非生长点的最短路径。初始时,S...

2019-12-02 21:26:04 1582

原创 Kruskal算法实现最小生成树

Kruskal算法思想 G=(V,E)是无向连通网,T=(U,TE)是G的最小生成树算法的基本思想是:初始状态为U=V、TE={ },即T中的顶点各自构成一个连通分量,然后按照边的权值由小到大的顺序,依次考察边E中的各条边。若被考察边的两个顶点属于两个不同的连通分量,则将此边加入到TE中,同时把两个连通分量连接为一个连通分量;若被考察边的两个顶点属于同一个连通分量,则舍去此边,以免造成回路,...

2019-12-02 20:53:58 767

原创 Prim算法求最小生成树

Prim算法基本思想 设G=(V,E)是无向连通网,T=(U,TE)是G的最小生成树,Prim算法的基本思想是:从初始状态U={v}(v∈V)、TE={ }开始,重复执行下述操作:在所有i∈U,j∈V-U的边中找一条代价小的边(i,j)并人集合TE,同时j并入U,直至U=V为止,此时TE中有n-1条边,T是一棵最小生成树。 简单来说,Prim算法就是在不产生回路的前提下,从任意结点开始...

2019-12-02 20:18:35 950

原创 二叉树

特点:每个结点最多有两颗子树,所以二叉树中不存在度大于2的结点。二叉树的左右子树不能任意颠倒(有序),如果某结点只有一颗子树,一定要指明它是左子树还是右子树。二叉树的分类1斜树所有结点都只有左子树的二叉树称为左斜树,所有结点都只有右子树的二叉树称为右斜树;左斜树和右斜树统称为斜树。特点:每一层只有一个结点,斜树的结点个数与其深度相同。2满二叉树在一棵二叉树中,如果所有分支结点都存在...

2019-12-01 21:16:54 413

原创

在树中通常将数据元素称为结点。树是n个结点的有限集合。当n=0时,称为空树,任意一颗非空树满足以及条件:1:有且仅有一个特定的称为根(root)的结点2:当n>1时,除根结点之外的其余结点被分成m(m>0)个互不相交的有限集合T1,T2,…,Tn,其中每个集合又是一棵树,并称为这个根结点的子树。树的基本术语结点的度,树的度某结点所拥有的子树的个数称为该...

2019-11-18 20:54:57 460

原创 STL 栈与队列

STL中有关于栈与队列的相关内容。在大多数情况下可以不需要自己写相应函数,直接调用STL中栈与队列的相关函数,简洁方便。以下是STL中栈与队列的头文件,定义方式以及常用函数:头文件#include<queue>// 队列 #include<stack>//栈定义方式stack<datatype> s;//栈的定义方式 queue&...

2019-10-28 21:43:40 192

原创 队列

队列是只允许在一端进行插入操作,在另一端进行删除操作的线性表。允许插入的一端称为队尾,允许删除的一端称为对头。队列的特性:入队的顺序与出队的顺序一致,即先入队者先出队,具有先进先出的特性。队列的顺序存储为了存储方法更为有效,让入队出队的时间性能都可以在o(1)时间完成,因此不移动数据元素,而让队头队尾活动。将对头队尾两个位置变量设为front和rear,入队时rear加1,出队时fro...

2019-10-28 21:32:32 393

原创

栈是限定仅在表的一端进行插入和删除操作的线性表,允许插入和删除的一端称为栈顶,另一端称为栈底,不含数据元素的栈称为空栈。栈的特性:任何时刻出栈的元素都只能是栈顶元素,即最后入栈的最先出栈,具有后进先出的特性。 栈的顺序存储 顺序栈初始化:将栈顶指针top置为-1; 顺序栈的销毁:顺序栈是静态存储分配,自动释放存储单元,因此析构函数为空,无需销毁。 顺序栈的入栈:栈顶...

2019-10-28 20:33:24 216

原创 线性表——单链表

单链表是用一组任意的存储单元存放线性表的元素。这组存储单元可以不连续,相对于顺序表需要预留存储空间,链式存储利用内存更加合理。为了正确的表示元素之间的关系,每个存储单元既要存储数据元素,又要存储后继元素所在的地址信息。这两部分组成了数据元素的存储映像—结点。结点的定义:template<typename T>struct Node{ T data; N...

2019-10-13 20:50:58 232

原创 线性表——顺序表

顺序表:用一段地址连续的存储单元依次存储线性表的数据元素,通常用一维数组来实现。顺序表的基本操作:顺序表的建立:无参构造函数建立顺序表,只需要将表的长度初始化为0。有参构造函数建立顺序表,需要将数据元素存放在数组中,将元素的个数作为顺序表的长度。具体模板代码如下:template<class T>SeqList<T>::SeqList(T a[],i...

2019-10-13 16:27:33 453

原创 数据结构——绪论

数据结构 绪论数据结构定义:相互之间存在一定关系的数据元素的集合,可分为逻辑结构与存储结构。算法算法的特征:有穷性,确定性,可行性。算法分析 时间复杂度分析方法1 事后统计法2 事前估计法:...

2019-09-22 20:58:35 135

原创 继承与多态

组合定义:将一个类的对象作为另一个类的成员。嵌入对象为公有成员:既可以使用新类接口提供的功能,还可以向包含的对象发送消息;嵌入对象为私有成员:新类中的方法可以使用成员对象提供的功能,新类包含的成员对象被隐藏。对象成员的初始化:在创建一个包含对象成员的组合对象是,会执行成员类的构造函数初始化对象成员。成员对象的初始化使用初始化列表语法。如果没有在初始化列表中对成员对象进行显示初始...

2019-06-23 14:42:15 189 1

原创 软件开发基本心得

软件开发心得需求分析要想设计出一个能够解决实际问题的程序,首先要解决要用这个程序来解决什么问题,及需求分析,这也是开发软件的基础。根据需求分析,确立出基本的程序框架。程序框架根据需求分析来构造一个软件的框架,其中包括需要用到的数据类,能用到的函数组成的操作类,各个类之间的联系,数据的调用方法等,不必直接将所有的细节都先想出,容易将自己的思路打乱。程序基本内容在构造出框架之后...

2019-06-22 16:35:41 483

原创 类与对象

类与对象定义:类是包含数据类型与函数的结构体,类中的变量别称为对象。struct a{ string productNo; double price; unsigned unitsold; //数据成员声明 void print(){cout<<productNo<<":"<<price<<" ...

2019-04-14 22:25:44 169

原创 复合类型、函数与C++类型——函数简述

函数定义函数可以被看作是一个由用户定义的操作。函数一般用一个名字表示,即函数名函数的操作数称为参数,由参数列表指定函数的结果称为返回值,返回值的类型称为函数返回类型。函数执行的动作在函数体中指定。返回类型、函数名、参数列表和函数体构成了函数定义。函数定义的语法形式为:返回类型 函数名(参数列表){函数体}函数声明函数在使用之前必须声明。一个函数可以在程序中多次声明。函数定义也...

2019-03-24 22:27:33 247

原创 复合类型、函数与C++基础——标准库类型vector

1,定义和初始化vector定义vector时必须指定元素的类型,格式为vector<元素类型>变量名;定义的同时可以初始化vector对象,初始化类型如下表:初始化vector时可以指定vector对象的大小和初始值。但更多情况下,在创建vector的时候并不知道确切的元素个数和值。为此,vector类型提供了添加元素的函数pushback和其他...

2019-03-24 21:29:26 272

原创 复合类型、函数与C++基础——标准库函数string

定义和初始化头文件#include<string>string初始化方式:string对象上的操作常用操作如下表:string在程序中的使用读写string对象:输入string对象主要有两种方式,第一种是平常的用输入操作符“>>"读入字符串。在输入操作符返回输入流对象时,如果输入流对象处于有效状态,表示没有遇到文件结束或者非法输入,可...

2019-03-24 17:34:54 207

原创 复合类型、函数与C++基础——const限定指针和引用

const限定指针1:指向常量的指针指向常量的指针不能够改变它所指向对象的值。如果要存放一个常量的地址,就需要用指向常量的指针。const int a=1024;int *p=&a;*p=100; //编译错误,*p无法修改a的值const int x=1024;const int *p=&x; //用指向常量的指针存储...

2019-03-24 10:53:12 274

原创 复合类型、函数与C++基础——指针与引用

程序中定义的变量会被分配一定的内存单元,当需要存取这个变量的值时,可以通过变量变量的名字访问这块内存。除了直接通过名字访问变量的内存单元外,也可以通过内存地址找到存放数据的单元,间接访问其中的内容。由此引出了指针和引用。指针int *ptr; char *ptr; int **ptr; int (*ptr)[3]; int *(*ptr)[4]; 每个指针都有相...

2019-03-23 16:43:10 157

原创 C语言知识总结

                                     转眼间学习C语言已经一学期了,对于C语言的知识也都有了一定的了解,现在对所学知识进行一下总结 C语言数据类型既简单运算主要介绍的是各种数据类型以及简单的赋值,计算 。需要注意的是       1:变量在使用前要初始化       2:输入的数值超出数据类型的范围       3:在定义变量时,用于变量...

2019-01-04 20:42:49 320 1

原创 数组小结

    数组在c语言学习中一个重要的部分,合理使用会让程序设计的更加简洁。   定义:一组具有相同元素类型的变量的集合。数组的定义形式:数据类型  数组名 数组下标   如:int score[5];(注:数组下标都是从0开始,且在定义数组时不能使用变量定义数组的大小)   一维数组的初始化:int s[5]={1,5,6,7,3};                      ...

2018-12-23 17:35:03 189

原创 C语言程序设计——循环结构

循环控制结构是C语言学习中的基础,也是复杂程序设计的桥梁。它的主要作用是把一些重复执行的操作简化,从而增强程序的可读性和简洁性。循环结构主要分为两种类型:当型循环结构和直到型循环结构。当型循环结构:当条件成立时,反复执行操作,直到条件不成立时结束循环;直到型循环结构:先执行操作,在判断条件是否成立,若成立,反复执行该操作,直到条件不成立时结束循环。C语言提供三种语句来实现循环结构,分别是f...

2018-12-07 17:17:08 2897

原创 初识C语言

从开始对C语言程序设计一窍不通,在两个多月的时间里,我对C语言有了初步的了解,也试着开始编写一些简单的程序,程序设计的大门徐徐向我打开。现在开始对两个多月所学到的知识进行总结。一: C数据类型首先接触到的是常量与变量概念,常量主要包含整形(short int、int、long int、long long int、unsigned)、与实型(float、double、long double)、字...

2018-11-11 16:59:41 300

空空如也

空空如也

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

TA关注的人

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