自定义博客皮肤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 235

原创 Java多态的学习

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

2021-11-26 16:39:43 389

原创 正则表达式的学习

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

2021-10-29 16:35:01 77

原创 Eclipse+Github连接上传代码

1:安装Eclipse并完成配置 不再赘述,按照网上教程即可 2:编写代码 File->New->Project->Java project 3:安装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 138

原创 lab_14_读书笔记

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

2021-06-08 10:09:40 59

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

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

2021-06-08 10:04:04 134

原创 lab12_图的m着色问题

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

2021-06-02 10:31:54 57

原创 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 254

原创 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 134

原创 lab9_LCS算法

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

2021-05-10 16:15:31 76

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

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 294

原创 动态规划投资问题

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<=n 3:设计 for(k from 1 to n) 投资k个项目 for

2021-04-25 22:16:53 127

原创 选第 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 49

原创 最近对问题

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

2021-04-12 16:18:55 63

原创 归并排序算法

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 119

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

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

2021-03-22 16:14:12 375

原创 实验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 218

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

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

2021-03-14 13:58:44 656

空空如也

空空如也

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

TA关注的人

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