![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 77
刘惜君的灯笼呐
软件工程专业学生/用此博客作为整理平时作业的地方~
展开
-
分治法求最小点对距离
问题阐述:对于平面上给定的N个点,给出所有点对的最短距离,即,输入是平面上的N个点,输出是N点中具有最短距离的两点。方法、步骤:1、预处理:根据输入点集S中的x轴进行排序,使用速度比较快的快速排序,然后将排序好的x坐标放到数组中,对应的y也放到对应的数组中。快速排序算法如下:quick x[0...n-1],y[0…n],left,right)if low<rlow←left原创 2016-10-14 14:07:12 · 4381 阅读 · 0 评论 -
穷举法和回溯法解n皇后问题
八皇后问题是一个以国际象棋为背景的问题:如何能够在8×8的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n×n,而皇后个数也变成n。当且仅当n = 1或n ≥ 4时问题有解。回溯法的算法核心在于判断下一个节点是否有希望,如果有希望就继续判断原创 2016-10-25 13:40:59 · 4780 阅读 · 0 评论 -
选择、冒泡、快速、归并、插入排序算法的运行时间比较
包括选择排序,冒泡排序,归并排序,快速排序,插入排序代码如下:#include #include #include using namespace std;void selection (int a[],int n);//选择排序void bubble(int a[],int n);//冒泡void Merge(int a[],int low,int m,int high);原创 2016-09-29 20:19:48 · 2127 阅读 · 1 评论 -
01背包问题的动态规划算法、蛮力法和空间优化算法
算法思想:(1)、动态规划算法:解决背包物品价值最大化问题的最优解,是建立在每一个子问题的最优解的前提下完成的。设Value[i,j]表示的是i个物品放进背包容量为j的背包的价值,令i从0增至n(物品总数量),j从0增至c(背包总容量)。Value[n,c]就是我们要的背包价值最大化的解。为了得到这个解必须要把之前的都解决,每一个问题的最优解的算法又根据以下确定:当物品重量w小于背包体积j原创 2016-11-10 18:32:52 · 3554 阅读 · 0 评论 -
最短增益路径法求解最大流问题(可随机生成有向图)
算法思想:解决最大流问题我们可以利用增广路径来增加流量,然后通过一次次的迭代将增光路径全部找出,此时从源点出发的流量和就是此网络的最大流量。而确定每一次增广路径的流量都需要用到残留流量等方法计算。以下就是将这个方法的具体实现算法展现出来: 1、将流网络用矩阵数组的方式存储。如共有n个点则创造一个n*n的数组a,每个数组的值都表示那条路径的权重,如a[1][3]的值若不为0则表示从点1到原创 2016-12-12 13:49:01 · 7305 阅读 · 2 评论 -
基于huffman的文件压缩
算法思想:1、哈夫曼数的建立我使用类的方法建立哈夫曼数的 。首先建立一个节点类,包含了一个char字符,int型的权重,int型左右孩子和父节点的下标,以及char类型的code数组,里面存放的是0101的编码,最后还有这个code的长度,用于最后计算平均码长。char data;//字符 charcode[50];//编码 intweight;//权重 int lchil原创 2016-11-27 21:51:36 · 855 阅读 · 0 评论 -
动态规划算法之资源分配问题及其空间优化方案
资源分配问题:某厂根据计划安排,拟将n台相同的设备分配给m个车间,各车间获得这种设备后,可以为国家提供盈利Ci j(i台设备提供给j号车间将得到的利润,1≤i≤n,1≤j≤m)。问如何分配,才使国家得到最大的盈利?一、算法思想1、 动态规划的最优性 算法的最优策略体现在每个子策略都是最优的。由此可以将m个车间划分为前m-1个和第m个,每次分配第m个的时候都是建立在原创 2017-01-13 15:53:36 · 23264 阅读 · 7 评论