算法设计与分析第二版
酷爱码
点点关注点点赞收藏不迷路
展开
-
什么是算法
算法是定义了一系列解决问题步骤的有序集合。它是一种用于解决特定问题或执行特定任务的计算过程或方法。算法可以是用自然语言、伪代码或编程语言表示。它可以用于执行各种任务,如搜索、排序、计算、数据处理等。算法通常具有输入、输出和基本操作的特征,可以通过一定的输入,得到期望的输出。算法的设计和分析是计算机科学和数学领域的重要研究领域。原创 2024-02-12 09:49:23 · 445 阅读 · 0 评论 -
java常见算法及实现
以上只列举了一些常见的算法及其实现,实际上Java中还有很多其他算法可以使用。在实际编程中,可以根据具体问题来选择合适的算法进行实现。原创 2024-01-24 07:53:05 · 376 阅读 · 0 评论 -
写一段圆弧插补算法程序
这个程序实现了一个简单的圆弧插补算法。给定起始点和终点的坐标,以及圆心和半径,它会计算圆心到起始点和终点的向量,然后计算夹角的弧度,最后使用步长来计算插补点。在循环中,程序会不断计算圆弧上的点,并输出它们的坐标。你可以根据需要修改起始点、终点、圆心和半径的值来得到不同的圆弧插补结果。原创 2024-01-23 07:48:29 · 946 阅读 · 0 评论 -
用Java实现01背包问题 用贪心算法
来表示当前背包容量和物品数量下的最大价值。初始化时,将数组中的所有元素置为0。然后,使用两个嵌套循环来遍历所有可能的背包容量和物品数量的组合。在每个位置,我们根据当前物品的重量和价值来更新最大价值。贪心算法不是解决01背包问题的有效方法,因为贪心算法只能保证得到一个近似最优解,而无法保证得到最优解。因此,我们需要使用动态规划来解决01背包问题。在上述代码中,我们使用一个二维数组。原创 2024-01-17 07:36:12 · 712 阅读 · 0 评论 -
第九章:普里姆算法求最小生成树-算法设计与分析报告C/C++版
设计如图该pdf文档有点长,截不完图片,所以分两次,看着有点模糊,需要该文档就直接下载吧代码如下#include "Graph.cpp"void Prim(MGraph g,int v){ int lowcost[MAXV];int mincost;int closest[MAXV],i,j,k;for (j=0;j<g.n;j++) //给初始化lowcost和closest数组{ lowcost[j]=g.edges[v][j];closest[j]=v;.原创 2020-05-25 18:42:54 · 350 阅读 · 0 评论 -
8.5求解最长公共子序列问题-求dp-算法设计与分析报告C/C++版
设计如图需要该pdf文档,直接下载即可代码如下#include <stdio.h>#include <queue>using namespace std;#define MAXN 20 //最多可能物品数#define INF 0x3f3f3f3f3 //定义∞//问题表示int n=3,W=30;int w[]={0,16,15,15};//重量,下标0不用int v[]={0,45,25,25};//价值,下标0不用//求解结果表示int m原创 2020-05-25 18:34:40 · 357 阅读 · 0 评论 -
哈夫曼树之哈夫曼编码分析-算法设计与分析报告C/C++版
设计如图所示有点长了,如果看着不舒服的话,就下载下来pdf文档吧代码如下//author:rgh#pragma warning#include <iostream>#include <queue>#include <vector>#include <string>#include <map>using namespace std; #define MAX 101int n;struct...原创 2020-05-25 18:30:10 · 1097 阅读 · 2 评论 -
采用优先队列式分枝限界法求解0/1背包问题-算法设计与分析报告C/C++版
设计如下这个pdf文档有点长,截图分段了,需要可以直接下载该文档代码如下//author:rgh//采用优先队列式分枝限界法求解0/1背包问题#include <stdio.h>#include <queue>using namespace std;#define MAXN 20 //最多可能物品数//问题表示int n=3,W=30;int w[]={0,16,15,15}; //重量,下标0不用int v[]={0.原创 2020-05-25 18:19:12 · 4068 阅读 · 0 评论 -
递归求解-算法设计与分析报告C/C++版
问题描述求从1~n的正整数中取出k(k<=n)个不重复整数的所有组合问题分析求解k个数的不同组合,我们可以用一维数组a[0]~a[k-1]来保存其中的一个结果,因为组合元素是不重复的,可以约定其递增排列,因为数组中的元素是递增排列的:所以a[k-1]即组合中的最后一个数,只能为k~n 令i=a[k-1] 则 i>=k && i<=n设计展示需要该pdf文档,直接下载就行运行代码#include <stdio.h>...原创 2020-05-25 18:09:18 · 543 阅读 · 0 评论 -
用分治法求解棋盘覆盖问题-算法设计与分析报告C/C++版
问题描述:在一个2k×2k(k≥0)个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为特殊方格。显然,特殊方格在棋盘中出现的位置有4k中情形,因而有4k中不同的棋盘,图(a)所示是k=2时16种棋盘中的一个。棋盘覆盖问题要求用图(b)所示的4中不同形状的L型骨牌覆盖给定棋盘上除特殊方格以外的所有方格,且热河亮哥L型骨牌不得重复覆盖。设计如图该pdf文档已上传,需要就直接下载完整代码//author:rgh#include <stdio.h>#inc..原创 2020-05-25 17:57:30 · 2020 阅读 · 0 评论 -
第二章求解n皇后问题-算法设计与分析报告C/C++版
注意n皇后不能在同行同列,同对角线,否则返回错误设计展示需要改pdf文档直接下载即可运行代码//求解n皇后问题//author:rgh#include <stdio.h>#include <stdlib.h>#define N 20 //最多皇后个数int q[N]; //存放各皇后所在的列号,即(i,q[i])为一个皇后位置int count=0; //累计解个数void dispasolution(int ...原创 2020-05-25 17:49:42 · 958 阅读 · 0 评论 -
第一章查找单词例题-算法设计与分析报告C/C++版
设计如图PS:上面的设计报告pdf文档已上传,需要可以下载完整代码如下//author:rgh#include<iostream>#include<string>#include<vector>using namespace std;void solve(string str,vector<string>&words)//产生所有单词{string w;int i=0;int j=str.find(" "..原创 2020-05-25 17:41:34 · 215 阅读 · 0 评论