自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 5.3背包问题(贪心算法)

给定一个载重量为M的背包,考虑n个物品,其中第i个物品的重量 ,价值wi (1≤i≤n),要求把物品装满背包,且使背包内的物品价值最大。 有两类背包问题(根据物品是否可以分割),如果物品不可以分割,称为0—1背包问题(动态规划);如果物品可以分割,则称为背包问题(贪心算法)。 假设xi是物品i装入背包的部分(0≤xi≤1),当xi=0时表示物品i没有被装入背包;当xi=1时表示物品i被全部装...

2020-04-28 16:48:01 501

原创 4.4最大子段和问题(动态规划)

问题:给定有n个整数(包含负整数)组成的序列a1,a2,a3,......,an,求该序列子段和的最大值。 注意:当所有整数均为负值时,定义其最大字段和为0; 由bj的定义(bj是1到j位置的最大子段和:)易知,当bj-1>0时bj=bj-1+aj,否则bj=aj。 则计算bj的动态规划递归式: bj=max{bj-1+aj,aj},1≤j≤n。#define NU...

2020-04-28 16:44:12 148

原创 4.4最大子段和问题

给定由n个整数组成的序列(a1, a2, …, an),最大子段和问题要求该序列形如图的最大值(1≤i≤j≤n),当序列中所有整数均为负整数时,其最大子段和为0。例如,序列(-20, 11, -4, 13, -5, -2)的 最大子段和为:。最大子段和问题的分治策略是:(1)划分:按照平衡子问题的原则,将序列(a1, a2, …, an)划分成长度相同的两个子序列(a1, …, a[n/2...

2020-04-28 16:42:07 323

原创 3.2.4循环赛日程表

设有n=2^{k}个选手要进行网球循环赛,要求设计一个满足以下要求的比赛日程表:(1)个选手必须与其他n-1个选手各赛一次;(2)每个选手一天只能赛一次。#include <stdio.h>#define MAX 100int a[MAX][MAX];void Copy(int tox,int toy,int fromx,intfromy,int r){ ...

2020-04-28 16:39:44 177

原创 3.1.3整数划分问题

整数划分问题是算法中的一个经典命题之一。把一个正整数n表示成一系列正整数之和:n=n1+n2+.....+nk(其中,n1≥n2≥......nk≥1,k≥1)。 正整数n的这种表示称为正整数n的划分。正整数n的不同划分个数称为正整数n的划分数,记作p(n)。 正整数6有如下11中不同的划分,所以p(6)=11。#include<bits/stdc++.h>...

2020-04-28 16:35:16 310

原创 3.1.2集合的全排列问题

void per(int list[ ], int k, int m) { if(k==m) { for(int i=0; i<=m; i++) { printf("%d ",list[i]); } printf("\n");...

2020-04-28 16:33:04 107

原创 查找

静态查找 :不涉及插入和删除操作的查找 。动态查找 :涉及插入和删除操作的查找。静态查找适用于:查找集合一经生成,便只对其进行查找,而不进行插入和删除操作; 或经过一段时间的查找之后,集中地进行插入和删除等修改操作;动态查找适用于:查找与插入和删除操作在同一个阶段进行,例如当查找成功时,要删除查找到的记录,当查找不成功时,要插入被查找的记录。查找结构 :面向查找操作的数据结构 ,即查找基...

2019-12-01 20:03:57 190

原创

图的抽象数据类型定义图的遍历是从图中某一顶点出发,对图中所有顶点访问一次且仅访问一次。深度优先遍历 (DFS:Depth First Search)广度优先遍历 (BFS:Broad First Search ;FIFO: First In First Out)基本思想:用一个一维数组存储图中顶点的信息用一个二维数组(称为邻接矩阵)存储图中各顶点之间的邻接关系构造:在未构造图的时候...

2019-12-01 19:50:11 86

原创 二叉树

上一篇写树的时候顺带加了一些二叉树的内容,简单重复一下。完全二叉树的特点:叶子结点只能出现在最下两层,且最下层的叶子结点都集中在二叉树的左部;完全二叉树中如果有度为1的结点,只可能有一个,且该结点只有左孩子。深度为k的完全二叉树在k-1层上一定是满二叉树。性质5-1 二叉树的第i层上最多有2i-1个结点(i≥1)。性质5-2 一棵深度为k的二叉树中,最多有2k-1个结点,最少有k个结点...

2019-12-01 19:44:53 138

原创

树的前序遍历操作定义为:若树为空,不进行遍历;否则⑴ 访问根结点;⑵ 按照从左到右的顺序前序遍历根结点的每一棵子树。树的后序遍历操作定义为:若树为空,则遍历结束;否则⑴ 按照从左到右的顺序后序遍历根结点的每一棵子树;⑵ 访问根结点。树的层序遍历操作定义为:从树的第一层(即根结点)开始,自上而下逐层遍历,在同一层中,按从左到右的顺序对结点逐个访问。树的存储结构:双亲表示法 孩子表示法...

2019-11-23 20:03:30 145

原创 多位数租

多维数组​线性表中的数据元素可以是线性表,但所有元素的类型相同。广义表:线性表中的数据元素可以是线性表,且元素的类型可以不相同。存取:给定一组下标,读出对应的数组元素。修改:给定一组下标,存储或修改与其相对应的数组元素。存取和修改操作本质上只对应一种操作——寻址数组没有插入和删除操作,所以,不用预留空间,适合采用顺序存储。设数组开始存放位置 LOC( 0, 0 ) = a。每个元素占用 l 个...

2019-10-25 10:18:05 102

原创 字符串

字符串​非空串通常记为:S=" s1 s2 …… sn"其中:S是串名,双引号是定界符,双引号引起来的部分是串值 ,si(1≤i≤n)是一个任意字符。串的逻辑结构:子串:串中任意个连续的字符组成的子序列。主串:包含子串的串。子串的位置:子串的第一个字符在主串中的序号。串的存储结构 :方案1:用一个变量来表示串的实际长度。方案2:在串尾存储一个不会在串中出现的特殊字符作为串的终结符,表示...

2019-10-25 10:16:34 92

原创 栈和队列

栈和队列栈:限定仅在表尾进行插入和删除操作的线性表。允许插入和删除的一端称为栈顶,另一端称为栈底。空栈:不含任何数据元素的栈。栈的操作特性:后进先出栈只是对表插入和删除操作的位置进行了限制,并没有限定插入和删除操作进行的时间。​两栈共享空间的实现——插入。如果栈满,则抛出上溢异常;判断是插在栈1还是栈2;2.1 若在栈1插入,则top1加1;在top1处填入x;2.2 若在栈2插入,则top2减...

2019-10-25 10:14:19 135

原创 链表

链表线性表的顺序存储结构称为顺序表,其基本思想就是用一段地址连续的存储单元依次存储线性表的数据元素。通常用一维数组来实现顺序表,也就是把线性表中相邻的元素储存在数组中相邻的位置,从而形成一一对应的关系。需要注意的一点是:C++语言中数组下标是从0开始的,而线性表中元素的序号是从1开始的,也就是说线性表中的第i个元素存储在数组下标为i-1的位置上。​ 单链表是用一组任意的存储单元存放线性表的元素,...

2019-10-25 10:12:28 87

原创 绪论

绪论数据结构的基本定义,数据、数据元素、数据结构(有一定关系的数据元素的集合)、数据逻辑结构(集合、线性、数、图)、存储结构(顺序存储和链接存储)、抽象数据类型(ADT)。最主要的还是算法的相关内容:算法具有有穷性、确定性、可行性。算法的时间复杂度(通常用O表示):事前估计法:时间复杂度估算,time计时器(使用方法:double start,end; time(&start); tim...

2019-10-25 10:09:56 505

原创 继承多态

继承多态类为构建可复用软件提供了更高的灵活性和更好的模块性。为了设计类,需要探究类之间的关系。类之间的关系通常是关联、聚合、组合以及继承。实现类之间的关系也是面向对象编程的一部分重要工作。如果将嵌入的对象作为新类的公有成员,那么除了使用新类接口中提供的功能之外,还可以向包含的成员对象发送消息如果将嵌入对象作为新类的私有成员,这时它是新类内部实现的一部分:新类中的方法可以使用成员对象提供的功...

2019-06-23 14:23:33 81

原创 类和对象

类和对象类的基本思想是数据抽象和封装。抽象数据类型由一组数据和对这些数据的操作组成。结构体内的函数被称为成员函数,结构体中的数据则被称为数据成员。扩展的结构体被称为类,结构体类型的变量被称为对象。没有初始值的成员将被默认初始化类定义中声明的数据成员和成员函数都具有类作用域成员函数定义虽处于类定义的花括号外,但还是在类作用域内,不需要成员访问语法。在类定义的花括号内定义的成员函数默认为i...

2019-04-14 15:19:47 184

原创 复合类型与函数

指针和引用内存地址程序运行时,代码和需要的数据都被存储在内存中。内存是有序的字节序列,每个字节都有唯一的地址,使用该地址可以确定字节的位置用以获取和存储数据。直接访问和间接访问通过变量的名字直接访问为程序中变量的名字分配的内存单元,获取变量的值使用变量的内存地址找到存放数据的单元,间接访问其中的内容指针的特点指针持有一个对象的地址,称为指针指向该对象,通过指针可以间接操纵他指向的对象...

2019-03-24 21:46:17 117

原创 数组

数组数组是一种有相同类型的变量的集合。例如对课本例题应用数组可以将10个成绩值存储在内存的一个连续区域中,c程序通过数组的下标实现对数组元素的访问。c语言中数组的下标都是从0开始的。本章先分别讲解了一维数组和二维数组的定义和初始化。一维数组在内存中占用的字节数为:数组长度*sizeof(基类型),二维数组占用的字节数为:第一维长度*第二维长度*sizeof(基类型)第三节为向函数传递一维数组...

2018-12-23 17:04:50 495

原创 循环

循环控制结构本章所学内容指导了我们怎样在每次运行程序时连续进行多次运算。 循环有三种while,do while,for。课本上有定义,不做详细介绍。重点说一下 for,因为在做题中发现该结构使用较多。要注意for语句中的三个表达式之间的分隔符是分号而且不能省略, 记得之前遇到过这种情况,中间两个分号之间是空,但是分号不能省略。后面几页讲的空语句只是表示语句存在,常用于编写延时程序。如何对循...

2018-12-09 21:45:01 124

空空如也

空空如也

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

TA关注的人

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