- 博客(28)
- 收藏
- 关注
原创 最大子段和(暴力法、改进暴力法、分治法、动态规划法)(java)
1、暴力法public class MaxSum { public static int Sum(int[] array, int n) { if (array == null || array.length == 0) return 0; else { int MaxSum = 0; ...
2019-11-20 13:17:34 810 3
原创 最长公共子序列(java和C++)-----动态规划
1、问题 最长公共子序列问题:给定两个序列X={x1,x2,…,xm},Y={y1,y2,…,yn},找出X和Y的最长公共子序列。2、算法核心 设X和Y的最长公共子序列记为LCS(X,Y),则①:当xm=yn时,只需找LCS(Xm-1,Yn-1),并加上1,因为两序列最后元素相等xm=yn。 ②:当xm≠yn时,LCS=max{LCS(Xm-1,Yn),LCS(Xm,Yn-1)},不...
2019-11-19 20:57:39 307
原创 二分查找
①装了Dev-c++,复制了一段代码,修改数据后发现运行结果不变,感到很困惑,查资料后解决办法是“运行-清除”,有一段是描述java的话是“eclipse中clean的作用:将工程中的.class文件删除,同时重新编译工程Java文件”。以后要养成习惯:每次编译前都clean一下。②#include #include 是包含命令,就是把iostream这个文件里的内容复制到这个地方。input...
2019-10-02 19:01:38 129
原创 深度优先搜索(java)
这个 ArrayList 是用来存储邻接列表的,每个列表对应图中的一个节点。是一个邻接列表(adjacency list)的数据结构,用于表示图中节点之间的关系。在邻接列表中,每个节点都与一个列表相关联,该列表存储与该节点直接相连的其他节点。因此,整个循环的目的是为每个图中的节点创建一个对应的空邻接列表,以便稍后将节点的邻居添加到相应的列表中。中,参数 v 表示图中节点的数量,而 adj 是一个成员变量,用于存储图的邻接列表。这些方法调用将节点之间的有向边添加到了图的邻接列表中,从而定义了图的结构。
2023-09-16 11:06:52 360
原创 代理模式
代理[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q09ZDojx-1614105853586)(C:\Users\Administrator\Desktop\java开发\Spring\代理.png)]按理说,顾客可以直接从厂家购买产品,但是现实生活中,很少有这样的销售模式。一般都是厂家委托给代理商进行销售,顾客跟代理商打交道,而不直接与产品实际生产者进行关联。所以,代理就有一种中间人的味道。软件中的代理模式是面向对象编程中比较常见的设计模式。[外链图片转存失败,源站
2021-02-24 02:45:18 173
原创 1. 两数之和
地址class Solution { public int[] twoSum(int[] nums, int target) { for(int i=0;i<nums.length;i++){ for(int j=i+1;j<nums.length;j++){ if(nums[i]+nums[j]==ta...
2020-01-09 21:36:08 125
原创 神经网络——正向传播与反向传播
import numpy as np# N 为一次训练所选取的样本数; D_in 为输入层的维度;# H 为隐藏层的维度; D_out 为输出层的维度.N, D_in, H, D_out = 64, 1000, 100, 10# 创建随机的输入层和输出层的数据x = np.random.randn(N, D_in)#创建N行,D_in列的具有正态分布的数组y = np.random...
2019-12-03 15:43:10 343
原创 装载问题___c++___分支限界
#include<iostream>#include<queue>using namespace std;typedef struct QNode{ QNode *parent; //指向父节点的指针 int lchild; //左儿子标志 int weight; //结点所对应的载重量 }QNode; //别名,可一样也可不...
2019-12-03 14:27:37 1253
原创 旅行售货员问题 / TSP / 排列树 (c++详解)
详解都在注释里#include<iostream> #define N 100 using namespace std; int n,m,w; //图的顶点数和边数int graph[N][N]; //图的加权邻接矩阵int nowc=0; //当前费用int bestc=-1; //当前最优值int x[N]; //当前解i...
2019-11-25 20:12:43 1141
原创 剪枝函数-----0-1背包问题(c++)
#include <iostream>using namespace std; #define N 100 //默认有99个物品。第一个不使用 int w[N]; //每个物品的重量 int v[N]; //每个物品的价值 int n,c; //n:一共有多少物品,c:背包的最大容量 in...
2019-11-24 15:45:20 2223 1
原创 回溯法-----n后问题(c++代码详解)
#include <iostream>#include<math.h>using namespace std;int x[100];int count;int n; int Place(int t){//后面的BackTrack要用Place,所以要在BackTrack前定义Place for(int i=1;i<t;i++)//i=1开始,Bac...
2019-11-24 10:43:24 1168
原创 回溯法-----装载问题(java代码详解)
1、代码public class Loading{ static int c; static int n; static int[] w; static int cw; static int bestw; static int[] X; static int[] Xbest; public static void main(St...
2019-11-22 21:24:25 2026
原创 背包问题(不是0-1背包问题)(java实现)
1、问题简述略2、背包问题思想①按(v1/w1)≥(v2/w2)≥…(vn/wn)排序②依次放入物品,直至放满。③注意,物品可以放部分,不一定得全部放,这是区别0-1背包问题的关键。三、代码实现(java)public class bag { public static void Bag(float[] weight, float[] value, int capacity,...
2019-11-21 12:43:16 187
原创 动态规划-----矩阵连乘(java)
一、问题设有6个矩阵A1A2A3A4A5A6相乘,即n=6,然后它的维数可组成矩阵p[ ](p的长度为n+1)。问题为矩阵数乘最小次数为多少?二、图示下面的图反应了不能使用递归的原因,因为大问题包含小问题,递归算法许多子问题会被重复计算,递归算法的时间复杂度为O(2^n),灾难级别的复杂度。三、引出动态规划,每个子问题只计算一次,计算后存起来,用到时再调用。动态规划算法的时间复杂度为...
2019-11-18 20:31:20 1131
转载 棋盘覆盖
#include<iostream> using namespace std; int tile=0; //L型骨牌的编号(递增) int board[100][100]; //棋盘 /***************************************************** * 递归方式实现棋盘覆盖算法 * 输...
2019-11-18 10:13:48 103
原创 pycharm运行时,no module named cv2错误的解决办法
我安装的是anaconda3。1、打开 Anaconda Powershell Prompt (Anaconda)
2019-11-09 16:20:49 1087
原创 信息熵(不确定性)的理解与解释
补充:熵越高,说明事件的不确定性越大。而信息不确定性越大时,该信息的价值越高。总结:1、某随机事件结果的种类越多,该事件的熵越大2、某随机事件的各种可能发生的结果概率越均匀,该事件的熵越大...
2019-10-16 21:51:53 9849 3
原创 矩阵树定理、拉普拉斯矩阵及推广证明
图G生成树的棵树τ(G) 等于 拉普拉斯矩阵C的任何一个n-1阶主子式的行列式的绝对值。(n-1阶主子式,就将某元素a(i,j)的那一行与列删掉,即删掉第r行和第j列后的新矩阵,用C表示。) 拉普拉斯矩阵C=D(G)-A(G),其中D(G)是图G的度的对角矩阵,A(G)是图G的邻接矩阵。如图G: 该图的的度的对角矩阵为: 该图的的邻接矩阵为: 则该图的的拉普拉斯矩阵...
2019-10-12 10:27:39 1713
原创 合并排序
#include<iostream>using namespace std;void merge(int a[],int low,int mid,int high){//合并a[low:mid]和a[mid+1:high]到b[low:high]。/*为什么要设两组变量(low、mid、high)和(i,j,k)呢??因为mid要用来标定a[]位置,确定国界范围,告诉i,j不...
2019-10-05 22:10:30 160
原创 快速排序
1、反思。 主要说明一下我写partition时犯的一个错误。 while(a[j]<pivot) a[i]=a[j]; j--; while(a[i]>pivot) a[j]=a[i]; i++; partition算法思想是从j开始需要找小于pivot的数,所以大于pivot时就要j- -。不能写a[j]<pivot(如上),...
2019-10-05 14:05:35 108
原创 直接插入排序
1、算法思想 直接插入排序中,每一个新元素和该元素前面的元素倒着比。 设置一个“哨兵”存储刚开始的元素,这个刚开始的元素是从第2个开始的(在数列array[ ]中,这个第2个元素为array[ 1 ],因为下标从0开始)。 第一个for用来使指针 i 从array[ 1 ]走到array[ n-1 ],第二个for用来使指针 j 从array[ i ]走到array[ 0 ],指针 j...
2019-10-04 13:49:33 124
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人