自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 字符串类型及字符串指针互相转换

需要注意的是,由于 const char* 是一个指向常量的指针,因此不能通过 const char* 类型的指针来修改字符串内容。如果需要修改字符串内容,可以使用 char* 类型的指针,但是需要注意内存管理的问题。以上是几种常见的类型之间的转换方式。在实际编程中,需要注意内存管理和类型安全。

2023-04-13 21:47:09 976

原创 圆排列问题

问题给定n个圆的半径序列,将它们放到矩形框中,各圆与矩形底边相切,求具有最小排列长度的圆排列。解析圆排列问题的解空间是一棵排列树。按照回溯法搜索排列树的算法框架,设开始时a=[r1,r2,……rn]是所给的n个元的半径,则相应的排列树由a[1:n]的所有排列构成。由圆在横坐标轴的位置,可以计算:sqrt((r1+r2)2-(r1-r2)2)推导出2 * sqrt(r1 * r3)设计//核心伪代码void dfs(int t) { if (t == n + 1) 计算排列长度

2020-06-15 20:01:41 756

原创 图的m着色问题

问题图的m着色问题。给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。分析可以利用回溯法解决问题。用图的邻接矩阵a表示无向连通图G = (V , E)。若(I,j)属于图的边集,则a[i][j] = 1,否则a[i][j] = 0。整数1~m表示m种不同的颜色。顶点i所着的颜色用x[i]表示。数组x[1:n]是问题的解向量。问题的解空间就是这些解向量的集合。该问题的解空间可以表示为一颗高度

2020-06-03 21:08:20 1247

原创 最优前缀码

问题给定字符集C={x1,x2,…,xn}和每个字符集的频率f(x1),求关于C的一个最优前缀码。解析构造最优前缀码的贪心算法就是哈夫曼算法,根据各个字符的权值建立一颗哈夫曼树,求得每个字符的哈夫曼编码,有了每个字符的哈夫曼编码,我们就可以制作一个该字符集的哈夫曼编码表。有了字符集的哈夫曼编码表之后,对数据文件的编码过程就是依次读人文件中的字符ch,在哈夫曼编码表中找到此字符,将字符ch转换为对应的哈夫曼编码串。核心代码void buildHuffmanTree(int n){ fo

2020-05-18 22:01:04 376

原创 相容问题

问题 问题描述:有n项活动申请使用同一个礼堂,每项活动有一个开始时间和一个截止时间。如果任何两个活动不能同时举行,问如何选择这些活动,从而使得被安排的活动数量达到最多。 问题建模设S={1,2,…,n}为活动的集合,si和fi分别为活动i的开始和截止时间,i=1,2,…,n定义:活动i和j相容 si>=fi或sj>=fi,i≠j求S最大的两两相容的活动子集A。分析k=...

2020-05-05 21:20:29 257

原创 LCS算法

问题给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence)。例:字符串1:BDCABA;字符串2:ABCBDAB则这两个字符串的最长公共子序列长度为4,最长公共子序列是:BCBA。解析理清子串与子序列的概念:子串:表示连续的一串字符。子序列:表示不连续的一串字符。S1的最后一个元素与s2的最后一个元素相同,这说明该元素一定位于...

2020-04-27 21:41:02 115

原创 矩阵链乘法

111

2020-04-20 20:39:33 88

原创 动态规划(投资问题)

动态规划(投资问题)1.问题问题的一般性描述:设有 m 元钱,n 项投资,函数 fi(x) 表示将 x 元投入第 i 项项目所产生的效益,i=1,2,…,n.问:如何分配这 m 元钱,使得投资的总效益最高?组合优化问题,假设分配给第 i 个项目的钱数是 xi,问题描述为:目标函数:max { f1(x1) + f2(x2)+ … + fn(xn)},约束条件:x1 + x2 ...

2020-04-13 19:26:08 3332

原创 寻找第k小个元素:特定分治策略

寻找第k小个元素:特定分治策略1.问题在含n个元素的无序数列中寻找第k小的元素2.解析3.核心代码 int select(int arr[],int n,int l,int r,int k) { int num=r-l+1; int s=num/5; int i=0; int count=0; int mid; int j=0; for(i=l;i<...

2020-04-06 21:11:39 302

原创 算法分析与设计实验五-分治法实现最近对问题

1.问题n个点在公共空间中,求出所有点对的欧几里得距离最小的点对。2.解析分析步骤如下:①分解:对所有的点按照x坐标从小到大排序(排序方法时间复杂度O(nlogn))。根据下标进行分割,使得点集分为两个集合。②解决:递归的寻找两个集合中的最近点对。取两个集合最近点对中的最小值dis。③合并:最近距离不一定存在于两个集合中,可能一个点在集合A,一个点在集合B,而这两点间距离小于d...

2020-03-30 15:06:51 641

原创 算法分析与设计实验四-二分归并排序

1.问题二分归并排序:对n个不同的数构成的数组A[1…n]进行排序,其中n=2^k。2.解析3.核心代码int MergeArray(int a[], int low, int mid, int high, int flag[]) { int i = low; int j = mid + 1; int m = mid; int n = high; ...

2020-03-23 09:48:45 165

原创 算法分析与设计实验三——检索算法设计

1. 问题 在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0 2. 解析1.顺序查找:从第一个元素x开始逐个与需要查找的元素key进行比较,当x=key时返回x的下标,如果比较到最后都没有找到,则返回j=0;2.二分查找:不断地将有序数组进行对半分割,并检查每个分区的中间元素3. 设计//顺序查找核心伪代码for (每一个...

2020-03-16 20:48:35 350

原创 算法分析与设计实验二 用Floyd算法求解图的两点间最短距离

1.问题用Floyd算法求解下图各个顶点的最短距离,给出距离矩阵。2.解析第一、先找出最短的距离第二、然后考虑找出对应的行进路线。对于任何一个点而言,i到j的最短距离不外乎存在经过i与j之间经过k和不经过k两种可能,所以可以令k=1,2,3,…,n(n是节点的数目),在检查d(ij)与d(ik)+d(kj)的值;在此d(ik)与d(kj)分别是目前为止所知道的i到k与k到j的最短距离,...

2020-03-09 16:27:40 277

原创 算法分析与设计实验二 用Dijkstra算法求解图的两点间最短距离

1.问题用Dijkstra算法求解下图各个顶点的最短距离,给出距离矩阵。2.解析1.找出距离当前节点1最近的节点2(权值最小相邻边)2.对于节点2的邻居,较之已有的路径,检查是否有前往他们更短路径,如果有,就更新其路径长度,此时节点1-节点3=6,但是经过节点1-节点3=5,小于6,更新路径);3.更新完所有邻居节点的开销后,又回到第(1)步,即选择距离当前节点最近的节点,前往该节点并...

2020-03-09 16:26:04 575

原创 算法分析 最小生成树求解((Prim和Kruskal算法)

Prime构造最小生成树1.待解决问题最小生成树概念:最小生成树是基于“带权图” 的,即图中每条边上都有特定的权值,这样的图又称为网。最小生成树指的是所有生成树中,权值之和最小的树。2.简明解析:step1:从0点出发,按边权值最小的点1连接.step2:从点0、1出发,点1与边权值最小的点6连接.step3:从点0、1、6出发,点1与边权值最小的点2连接.step4:从点0、1、...

2020-03-02 20:49:16 477

原创 猜数字小游戏

一道有点♂的猜数字游戏【描述】猜数字游戏是令系统随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次...

2019-11-22 20:00:51 251

空空如也

空空如也

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

TA关注的人

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