- 博客(23)
- 收藏
- 关注
原创 作业13-高效算法读后感
本书介绍了多种解决某些经典问题的算法基础,描述了问题出现的场景,并用python提出了简单的解决方案。正确的实现算法,往往不是一件简单的事情,总需要避开陷阱,也需要应用一些技巧,保证算法能够在规定时间内实现本书在阐述算法实现实数加了重要的细节,以帮助理解。要想写出高效率的程序,必须先找到一个具有合适复杂度的算法,复杂度取决于运算时间和输入数据大小之间的关系,我们用朗道表达式来表达不同算法的复杂度,假设输入数据或参数的长度为n,且算法的运算时间,随n^2变化,那么我们就说这个算法的复杂度为O(n ^ 2)。
2020-06-15 23:17:16
213
原创 作业12-着色问题
作业12-着色问题问题解析设计分析源代码问题图的m着色问题。给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。解析设计分析源代码...
2020-06-03 09:08:30
471
原创 作业11-哈夫曼树及编码
作业11-哈夫曼树及编码问题解析设计分析源代码问题给定字符集HT={x1,x2,…,xn}和每个字符的次数或频率,求关于HT的一个最优前缀码。解析哈夫曼算法:1)初始化n个单节点的树,并为它们表上字母表中的字符,每个字符的概率记在树的根中,用作树的权重。2)重复下面的步骤,直到只剩一棵单独的数。找到两棵权重最小的树。把它们作为新树中的左右子树,并把其权重之和作为新的权重记录在新树的根中。设计1.n<-|C|2.Q<-C //按频率递增构成队列 Q3.for i
2020-05-18 23:12:19
326
原创 作业10-相容问题
作业10-相容问题(1)问题问题描述问题建模(2)解析(3)设计(4)分析(5)源代码(1)问题相容问题,解析时给出其他几种贪心策略(如按开始时间从小到大、每个活动时间的占用时间等),并给出这些贪心策略无法实现最优的反例。问题描述有n项活动申请使用同一个礼堂,每项活动有一个开始时间和一个截止时间。如果任何两个活动不能同时举行,问如何选择这些活动,从而使得被安排的活动数量达到最多。问题建模设S={1,2,…,n}为活动的集合,si和fi分别为活动i的开始和截止时间,i=1,2,…,n定义:活动i
2020-05-12 10:35:39
380
原创 实验九 LCS算法
LCS算法问题解析设计分析源代码问题给定序列X=<x1,x2,…,xm>,Y=<y1,y2,…,yj>,求X和Y的最长公共子序列解析可以分为如下三种情况设计分析源代码...
2020-04-27 22:20:11
202
原创 C++ 声明和实现一个向量类MyVector...
C++实验描述输入输出题目答案描述声明和实现一个向量类MyVector,包括一个点的坐标位置x、y和z,实现其构造函数和三个友元函数,完成两个向量的加法、减法、点乘与叉乘运算。输入输入一个点的坐标位置x、y和z。输出详见示例【输入示例】3 4 5【输出示例】(1,0,0)(-1,-3,0)(15,-10,-1)18题目#include <iostream>...
2020-04-24 10:19:40
1580
原创 实验八 动态链乘法
动态链乘法问题解析蛮力法动态规划法设计递归算法迭代算法分析递归迭代源代码“矩阵链乘法,特别要求举例时采用不同于讲义的数据进行推导”问题设A1,A2,…An为n个矩阵的序列,其中Ai为Pi-1×Pi阶矩阵,这个矩阵链的输入用向量P=<P0,P1,…,Pn>给出给定向量P,确定一种乘法次序,使得基本运算的总次数达到最小例如P=<10,20,30,50>,则A1:10×...
2020-04-21 12:29:35
324
原创 实验7 算法讲义7.3投资问题
投资问题问题解析递推公式证明满足优化原则证明(反证法):设计分析源代码问题一般性描述:设m元钱,n项投资,函数fi(x)表示将x元投入第i项项目所产生的效益,i=1,2,…,n问:如何分配这m元钱,使得投资的总效益最高?组合优化问题:假设分配给第i个项目的钱数是Xi,问题描述为:目标函数 max{f1(x1)+f2(x2)+…+fn(xn)}约束条件 x1+x2+…+xn=m,x...
2020-04-11 22:45:20
528
原创 实验5 分治法解决就近对问题
实验5 分治法解决就近对问题问题描述解析蛮力法分治法设计伪代码分析源码问题描述在二维平面的N个点中,用分治法找出距离最近的一对点解析可以采取蛮力法和分治法,虽然这篇博客要讲的是分治法,但是也要提一下蛮力法蛮力法这种方法要计算每一对点的距离,避免同一对点计算两次,只考虑点的下标符合i<j的情况,这样要计算n(n-1)次,复杂度为O(n^2)。分治法分治法解决该问题,就是把平面...
2020-03-30 20:20:44
481
原创 实验4:二分归并排序
二分归并排序问题描述解析设计分析源码问题描述对n个不同的数构成的数组A[1…n]进行排序,其中n=2^k解析二分归并排序分为两个部分,先分,把需要排序的数据分成若干子序列,最后拆到每个子序列只有一个数,后治,归并的时候按照大小排序。总的来说就是将问题分解成若干个小问题。对28,72,59,97,12,38,29,65从小到大排序如图所示设计(1)void mergearray(...
2020-03-22 20:46:03
306
原创 实验3 两种检索算法
实验3(1)问题(2)解析(3)设计(4)分析二分查找顺序查找(5)源代码(1)问题在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0.按实验模板编写,“分析”部分仅给出复杂度结果即可。(2)解析要查找排好序的数组中的一个数,返回下标可以用的查找的方法很多,这里采用顺序查找和二分查找。顺序查找按照数组原有序列进行查找,二分查找则是每次让左右...
2020-03-10 22:10:26
341
原创 实验2-2Dijkstra算法
Dijkstra算法求解最短路径(1)问题(2)解析基本思想(3)设计(4)分析(5)源码(1)问题对于下图使用Dijkstra算法求由顶点a到顶点h的最短路径,按实验报告模板编写算法。(2)解析迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。基本思想指...
2020-03-09 22:02:42
352
原创 实验2-1Floyd算法
Floyd算法求解最短距离(1)问题(2)解析(3)设计(4)分析(5)源码(1)问题(2)解析(3)设计(4)分析(5)源码
2020-03-09 21:14:41
228
原创 Prim算法与Kruskal算法实现最小生成树
目录(1)问题如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出fail输入格式:第一行包含两个整数N、M,表示该图共有N个结点和M条无向边。(N<=5000,M<=200000)接下来M行每行包含三个整数Xi、Yi、Zi,表示有一条长度为Zi的无向边连接结点Xi、Yi输出格式:输出包含一个数,即最小生成树的各边的长度之和;如果该图不连通则输出(2)解析最小...
2020-03-02 20:22:57
759
原创 Java的深拷贝和浅拷贝
Java的深拷贝和浅拷贝简介铺垫浅拷贝实现浅拷贝实现简介深拷贝对于深拷贝来说,不仅要复制对象的所有基本数据类型,还要为所有引用类型的成员变量申请存储空间,并复制每个引用类型所引用的对象,直到该对象可达的所有对象。浅拷贝对于基本数据类型,浅拷贝会直接进行值传递,也就是将该属性值复制一份给新的对象。因为是两份不同的数据,所以对其中一个对象的该成员变量值进行修改,不会影响另一个对象拷贝...
2019-11-19 15:39:46
110
原创 组合与聚合
Java中的组合与聚合概 念1.组合(Composition)2.聚合(Aggregation)3.就强弱关系而言概 念1.组合(Composition)表示的是’Part-od’的关系比如:一个人有鼻子有眼睛,他们不会脱离人单独存在public class Person { private Eye eye = new Eye(); private Nose nose...
2019-11-12 16:09:33
127
原创 Javadoc探索
Javadoc探索(一)简介(二)Javadoc标签功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入(一)简介jav...
2019-11-12 15:34:16
136
原创 五种语言的数组之争
2019 JAVA自学笔记 04数组C语言创建数组的复制方法一方法二C++创建数组数组的复制方法一方法二JAVA创建数组数组的复制方法一方法二方法三Python创建数组数组的复制Java Script创建数组数组的复制JAVA与其他的对比数组所谓数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变...
2019-09-24 16:40:49
116
原创 Unicode、UTF-8\16\32的渊源
目录(一) Unicode简介(二) UTF简介(三) UTF-8/16/32的关系(1)编码方式(2)总结(一) Unicode简介Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。...
2019-09-17 16:37:01
221
原创 JAVA,Debug篇
@欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作...
2019-09-10 15:51:33
97
原创 Java,我想一步一步来
2019 Java 自学笔记(一)下载安装Eclipse(1)从官网下载安装包(2)64位安装方式(二)第一个Java程序:Hello World(一)下载安装Eclipse(1)从官网下载安装包https://www.eclipse.org/downloads/(2)64位安装方式1.直接单击上图的Download 64 bit按钮,然后如下图所示,然后点击Download进行下载...
2019-09-03 22:57:27
105
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人