自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《漫画算法》读书笔记

《漫画算法》读书笔记在图书馆借阅算法书时,看到了一本非常吸引我的算法书——《漫画算法》。算法还能以漫画的方式展示出来吗?我带着我的疑惑翻开了这本书,里面的语言非常接地气,通俗易懂,让我觉得这本书非读不可。这本书一共讲解了六章知识点,下面让我们一起来了解吧。第一章 算法概述本章主要的知识点是算法和数据结构,时间复杂度和空间复杂度。通过本章的学习,我学到了:1)在计算机领域里,算法是一系列程序指令,用于处理特定的运算和逻辑问题。2)衡量算法优劣的主要标准是时间复杂度和空间复杂度。3)数据结构是数

2021-06-16 00:32:44 164

原创 算法期末大作业-选题三

1.问题给定一个源串和目标串,能够对源串进行如下操作:在任意位置上插入一个字符;替换任意字符;删除任意字符。写一个程序,实现返回最小操作次数,使得对源串进行上述这些操作后等于目标串(源串和目标串的长度都小于2000)。2.定义采用动态规划的方法求解。首先需要确定的是该题的最优子结构,然后用普通的循环,或递归,或备忘录的方式来实现。设f[i][j]表示源串strA[1…i]变成目标串strB[1…j]所需改动的最小次数,当i=0时表示源串没有字符那么f[0][j]=j;当j=0时,表示目标串没有

2021-06-08 14:22:24 709

原创 图的m着色问题

1.问题图的m着色问题。给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。2.定义首先,使用邻接矩阵存储无向连通图;其次,明确color数组代表的含义:color[n],大小为n,下标肯定代表顶点,里面的值代表这个顶点放的是哪种颜色。还要判断当前顶点和哪些顶点有着色冲突,若有return false;否则return true。将颜色初始化,遍历搜索下一个颜色。根据着色情况输出、处理下一个

2021-06-06 20:49:57 89

原创 实验十一 最优前缀编码

一.问题给定字符集c= {x,X…;和每个字符的频率f(x),求关于C的一个最优前缀码。二.解析构造最优前缀码的贪心算法就是哈夫曼算法(Huffman)实例:三.设计#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<cstdlib>#include<cmath>#include<vector>

2021-05-30 16:52:53 170

原创 实验十 装载问题

一.问题n个集装箱装上两艘载重分别为C和C2的轮船,w为集装箱i的重量,且之,W≤q+c2问是否存在一种合理的装载方案将n个集装箱装上轮船?如果有,给出一种方案。二.解析定理:如果装载问题有解,则存在一一个使得第一条船装载量与c1的差达到最小的解。证明:如果有解,假设一个解为船1 (c1)上装载: w1和w2船2 (c2)上装载: w3,并且c1-(w1+w2)不为最小解。由于现有解c1 -(w1+w2)不为最小解,则通过交换c1和c2上的物品,使得存在更小解,例如交换w2和w3,使得c1-(

2021-05-24 11:01:41 259

原创 作业8----矩阵链乘法

1.问题给定向量 P,确定一种乘法次序,使得基本运算的总次数达到最小。例如,P=<10,20,30,40>,则A1:10×20,A2:20×30,A3:30×40,有两种结合次序1)(A1A2)A3:10×20×30+10×30×40=180002)A1(A2A3):10×20×40+20×30×40=320002.解析3.设计示例P=<8,10,20,30,5,7,12>,n=6p0=8 p1=10 p2=20 p3=30

2021-04-26 16:35:42 132

原创 作业七-投资问题

1.问题一般性描述设有m万元钱,n项投资,函数fi(x)表示将x万元投入第i项项目所产生的效益,i=1,2,…,n问:如何分配这m元钱,使得投资的总效益最高?讲义实例:2.解析证明满足优化原则3.设计得到结果:4.分析5.源码https://github.com/syj-ll/sf7...

2021-04-25 15:59:59 228

原创 算法分析与设计实践-作业五-最近对问题

一、问题令P为笛卡尔平面上n>1个点构成的集合,假设这些点都不一样,且按照x轴升序怕排列,还可以按照y轴升序排列并且将列命名为Q。求点对间的最小距离。二、解析当2≤n≤3时,问题就可以通过蛮力算法求解。当n>3时,可以利用点集在x轴方向上的中位数m,在该处作一条垂线,将点集分成大小分别为[n/2]和[n/2]的两个子集P和 P。即使得其中[n/2]个点位于线的左边或线上,[n/2]个点位于线的右边或线上。然后就可以通过递归求解子问题P和P来得到最近点对问题的解。其中d1和d2分别表示在P和

2021-04-25 15:40:26 172

原创 实验6-选第k小元素:特定分治策略

1.问题用特定的分治策略,选第k小的元素。设 L是n个元素的集合,从 L 中选取第k小的元素,其中 1<=k<=n.这里的第k小元素是指,当 L 按从小到大排好序之后,排在第k个位置的元素。2.解析k=|S1|+1, m’ 就是所要找的第k小的数(以m’为划分标准后, 比m’小的有|S1|个,如果恰巧k=|S1|+1, 则m’就是所要找的第k小的数)●k<=|S1|,归约为在s1,中找第k1小的子问题,k1在子问题中相对位置不变,即k1=k ;●k>|S1|+1,归约为在

2021-04-25 15:39:43 223

原创 实验4 二分归并

1.问题把对n个不同的数构成的数组A[1…n]进行二分归并排序(其中n=2^k)的问题转化为具体问题为:当n=2时,A[4]={11, 33, 22, 4},对数组A进行二分归并排序。2.解析输入:数组A[4]。执行:递归划子序列,分成长度为4/2/2=1的子序列,得到4个长度1的子序列然后再将这些子序列两两归并,直到得到一个完整的序列为止。3.设计#include <stdio.h>#include <stdlib.h>#define NUM 20 //最大容

2021-04-05 21:36:42 63

原创 顺序查找,二分查找

1.问题写出两种检索算法:在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0.按实验模板编写,“分析”部分仅给出复杂度结果即可。2.解析顺序查找顺序查找是按照序列原有顺序对数组进行遍历比较查询的基本查找算法,即在数组中从数组的第一个到最后一个依次查找一遍对于任意一个序列以及一个给定的元素,将给定元素与序列中元素依次比较,直到找出与给定关键字相同的元素,或者将序列中的元素与其都比较完为止。二分查找二分查找也称折半查找(Binary Search)

2021-03-28 18:53:58 158

原创 Dijkstra算法

算法分析与设计实践2.21.问题2.解析通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。此外,引进两个集合S和U。S的作用是记录已求出最短路径的顶点(以及相应的最短路径长度),而U则是记录还未求出最短路径的顶点(以及该顶点到起点s的距离)。初始时,S中只有起点s;U中是除s之外的顶点,并且U中顶点的路径是”起点s到该顶点的路径”。然后,从U中找出路径最短的顶点,并将其加入到S中;接着,更新U中的顶点和顶点对应的路径。 然后,再从U中找出路径最短的顶点,并将其加入

2021-03-19 16:15:43 218

原创 Floyd算法

算法分析与设计实践2.11.问题用Floyd算法求解下图各个顶点的最短距离。写出Floyd算法的伪代码和给出距离矩阵(顶点之间的最短距离矩阵),按实验报告模板编写算法。2.解析(1)、Floyd算法的核心思想是动态规划,它将多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解。如果要找到两个顶点直接的最短路程,一般要引入第三个点(如k),即以k为中转点,路线为i->k->j,这样就可以缩短i到j的距离。但是k是1到n的哪一个呢,甚至可能不止有一个中转点,而是经过两个点或者

2021-03-15 16:27:45 131

空空如也

空空如也

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

TA关注的人

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