自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java抽象类和接口异同点的学习

JAVA抽象类和接口的对比学习

2021-12-11 15:32:00 246

原创 Java多态的学习

1:什么是多态?多态是同一个行为具有多个不同表现形式或形态的能力。嗯~ o( ̄▽ ̄)o有点难懂看了图应该会好理解一点,同样是打印这个行为,然后却有彩色与黑白两种表现形式。这下应该初步懂了是个什么了吧。进一步呢,多态又分为 编译时多态和运行时多态。编译时多态:比如重载运行时多态:比如重写2:多态存在的三个必要条件继承、重写、父类引用指向子类对象:Parent p = new Child();当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的

2021-11-26 16:39:43 396

原创 正则表达式的学习

正则表达式的作用验证用户的输入匹配、替换、拆分字符串语法教材上可参考,不再赘述用法1:2:3:替换和拆分字符串:String类包含的方法:replaceAll、replaceFirst、split示例:总结:正则表达式功能强大,理解透彻将会有很大的帮助...

2021-10-29 16:35:01 85

原创 Eclipse+Github连接上传代码

1:安装Eclipse并完成配置不再赘述,按照网上教程即可2:编写代码File->New->Project->Java project3:安装EGit插件并配置安装:EGit插件地址:http://download.eclipse.org/egit/updates配置:1.Window–>Preferences–>Version Control(Team)–>Git–>Configuration->User Settings->Add E

2021-10-07 22:14:56 149

原创 lab_14_读书笔记

读《算法设计与分析基础》有感读了算法设计与分析基础,初步对算法有了一定的了解。该书设计的内容很多,讲的很全面,每一章结束时,都会对本章的重要概念和结论做一个总结,习题很多可惜没有附上答案,每道题如果要做再去网上搜索资源会消耗大量的时间。本书涉及到递归、蛮力、穷举、分治法、动态规划、决策树、回溯法….很多的内容,学习下来对自己的算法能力大有所获,也有许多的经典例子供思考,如prim算法基于选择最小路径,krusual算法基于选择最小边,哈夫曼算法最小前缀的应用,动态规划中的背包问题,分治法中的最近对和凸包问

2021-06-08 10:09:40 67

原创 lab13_大作业_最短编辑距离问题

1:问题给定一个源串和目标串,能够对源串进行如下操作:在任意位置上插入一个字符;替换任意字符;删除任意字符。写一个程序,实现返回最小操作次数,使得对源串进行上述这些操作后等于目标串(源串和目标串的长度都小于2000)。2:解析一般情况下,我们要想得到将src[1…i]经过最少次数的增加,删除,或者替换操作就转变为dest[1…j],那么我们就必须在之前可以以最少次数的增加,删除,或者替换操作,使得现在串src和串dest只需要再做一次操作或者不做就可以完成源串src[1…i]到目标串dest[

2021-06-08 10:04:04 136

原创 lab12_图的m着色问题

1:问题2:解析3:设计4:分析5:源码图的m着色问题

2021-06-02 10:31:54 62

原创 lab11_最优前缀码

#include <iostream>#include <queue>using namespace std;typedef struct{ int weight; char ch; int parent; int leftchild; int rightchild; }Huffman;typedef struct Hcode{ int code[100]; //字符的哈夫曼编码的存储 int start

2021-05-25 21:55:58 265

原创 lab10_背包问题

1:问题一个旅行者准备携带一个背包。可以放入背包的物品有 n 种,每种 物品只有一个,重量和价值分别为wi和vi 。如果背包的最大重量 限制是 B,问怎样选择放入背包的物品,使得背包的价值最大?2:解析声明一个 大小为 m[n][c] 的二维数组,m[ i ][ j ] 表示 在面对第 i 件物品,且背包容量为 j 时所能获得的最大价值 ,那么我们可以很容易分析得出 m[i][j] 的计算方法,(1). j < w[i] 的情况,这时候背包容量不足以放下第 i 件物品,只能选择不拿m[

2021-05-17 22:02:16 138

原创 lab9_LCS算法

1:问题LCS算法设 X 和 Y 是两个序列,如果 Z 既是 X 的子序列,也是 Y 的子序列,则称Z 是 X 和 Y 的公共子序列。求Z:2:分析算法1:算法2:(1)i=1j=1,X.A<>Y.B:C[1,1]=max(C[0,1],C[1,0])=max(0,0)=0,删除xj=2,X.A<>Y.C:C[1,2]=max(C[0,2],C[1,1])=max(0,0)=0,删除xj=3,X.AY.A:C[1,3]=C[0,2]+1=0+1=1,删除两

2021-05-10 16:15:31 81

原创 动态规划之矩阵链乘法

1:问题设A1,A2,… ,An为n个矩阵的序列,其中Ai为Pi-1*Pi阶矩阵,这个矩阵链 的输入用向量P=<P0,P1,… ,Pn>给出。给定向量P,确定一种乘法次序,使得基本运算的总次数达到最小。2:解析对于矩阵链乘法问题,我们将所有对于1≤i≤j≤n确定A i A i+1 …A j 的最小代价括号方案作为子问题。令m[i,j]表示计算矩阵A i,j 所需要的标量乘法的次数最小值,则最优解就是计算A i…n所需的最低代价就是m[1,n]① 对于i=j的情况下,显然有m=0,不需要

2021-04-29 22:27:36 306

原创 动态规划投资问题

1:问题设m元钱,n项投资,函数fi(x)表示将x元投入第i项项目所产生的效益,i=1,2,…,n.问:如何分配这m元钱,使得投资的总效益最高?假设分配给第i个项目xi元钱,即求MAX(Σ1->i fi(xi));2:解析Fk(x)表示x万元投给前k个项目的最大收益;Fk(x) = MAX{(fk(xk) + Fk-1(x - xk)},k=2,3,…,n.F1(x)=f1(x)即求MAX(Fk(x)) k<=n3:设计for(k from 1 to n) 投资k个项目for

2021-04-25 22:16:53 132

原创 选第 k 小元素:特定分治策略

**1:问题选取第k小的元素2:解析3:设计4. int partition(int left, int right, int center) {5. int t, i = left - 1, j, temp;6. for (j = left; j < right; j++) {7. if (a[j] == center) swap(a[j], a[right]);8. }9. t = a[right];10. for

2021-04-19 16:37:03 52

原创 最近对问题

1:问题设p1=(x1,y1),p2=(x2,y2)…pn=(xn,yn)是平面n上n个点构成的集合S,找出集合S中距离最近的点对。2:解析3:设计4:分析5:源码最近对问题

2021-04-12 16:18:55 64

原创 归并排序算法

1.问题:对 n 个不同的数构成的数组 A[1…n]进行排序,其中n = 2^k。2. 解析二分归并排序首先就是将原问题归结为规模为n/2的2个子问题,继续划分,将原问题归结为规模为n/4的4个子问题…以此类推,当子问题规模为1时,划分结束。从规模1到n/2,陆续归并被排好序的两个子数组。每归并一次,数组规模扩大一倍,直到原始数组。3. 设计核心伪代码:int Merge(int a[],int low, int mid, int high)// 合并函数{ int

2021-03-29 16:30:44 124

原创 实验3:检索算法(顺序查找、二分查找)

1:问题写出两种检索算法:在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=02:解析1:顺序查找:遍历一遍T[1…n],找到与x相等的就跳出并输出,否则若查找了一圈都没有证明x不在数组中,输出j=0;2:二分查找:将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查

2021-03-22 16:14:12 385

原创 实验2:最短路径的求法(Floyd、Dijkstra)

1. 问题分别用Floyd、Dijkstra算法求两个顶点间的最短距离**2.解析Floyd:算法Dk[i][j] = 路径{ i {lk}j }的最小长度D0,D1,…,D|V|-1[i][j]即给出了i到j的真正最短距离最初的D-1是什么?当Dk-1已经完成,递推到Dk时:或者k最短路径{i{lk}j},则Dk =Dk-1或者k 最短路径{i {lk}j },则该路径必定由两段最短路径组成:Dk[i][j]=Dk1[i][k]+Dk1[k][j]Dijkst

2021-03-16 19:52:47 220

翻译 实验1:最小生成树的构造

**最小生成树的构造(Prime、Kruskal)**图解:***Prim算法***又称为加边法,即每次选择最小权值的边加入到生成树中,然后再更新权值,如此反复,保证每次最优来达到最优解。Kruskal算法:1.对边按权重排序为e1、e2、…2.若已选择V-1条边,停止。否则,按边的权重排序选择下一条边。3.判断选择的边的两点是否在同一连通分支。若不在同一分支,则选择该边。返回步骤2。以下是Prime算法的代码:#include<iostream>#include<

2021-03-14 13:58:44 668

空空如也

空空如也

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

TA关注的人

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