算法
文章平均质量分 79
羽溪夜
这个作者很懒,什么都没留下…
展开
-
大数据乘法
大整数乘法比较容易想到的是做多位数乘法时列竖式进行计算的方法,只要写出模拟这一过程的程序,就能实现任意大整数的乘法运算。 下面介绍一种更便于编程的方法:“列表法”:例如当计算8765*234时,把乘数和被乘数照如下列出,见表1:8765*161412102转载 2015-10-06 16:04:24 · 2158 阅读 · 0 评论 -
贪心算法基础理论
Greedy算法基本思想:贪心算法是一种在每一步选择中都采取在当前状态下最好或最优的选择,从而希望结果是最好或原创 2015-12-13 14:37:52 · 1663 阅读 · 1 评论 -
哈密顿环之广度优先
广度优先,使用队列,在网上下的关于队列的代码将数据节点改成本部分需要的结构。#include<stdio.h>#include<stdlib.h>#include<windows.h>#include"Queue.h"#define MAX_SIZE 21/*struct Point{int vertex;int path[MAX_SIZE];...原创 2015-12-09 21:18:10 · 562 阅读 · 0 评论 -
凸包问题之分治法
凸包:按横坐标排序,以最小点与最大点之间的连线为准,在直线一侧找使三角形面积最大的点,此点必在凸包内,以找到点与最大点或最小点继续递归以寻找最大三角形面积寻找凸包点,直至找不到符合条件的点。实现代码如下:#include<stdio.h>#include <stdlib.h>#include <windows.h>#define MAX_SIZE 100...原创 2015-12-07 00:11:17 · 5175 阅读 · 2 评论 -
凸包问题之GrahamScan法
GrahamScan法:当沿着Convex hull逆时针漫游时,总是向左转;在极坐标系下按照极角大小排列,然后逆时针方向漫游点集,去除非Conves hull顶点(非左转点)。实现代码如下:#include<stdio.h>#include<stdlib.h>#include<windows.h>#define MAX_SIZE 10001struc...原创 2015-12-07 00:08:58 · 561 阅读 · 1 评论 -
凸包问题之蛮力解决法
最近研究了解决凸包问题的算法,查阅了很多资料,现记录如下,将分3次分别记录蛮力法,GrahamScan和分治方法,如有发现问题请留言,谢谢!暴力解决法:考虑Q中的任意四个点A、B、C、D,如果A处于BCD构成的三角形内部,那么A一定不属于凸包P的顶点集合。实现代码如下:#include<stdio.h>#include<stdlib.h>#include<wind...原创 2015-12-06 23:54:45 · 2718 阅读 · 0 评论 -
哈密顿环之分支限界
最小哈密顿环问题,输入是一个无向连通图G=(V,E),每个节点都没有到自身的边,每对节点间都有一条非负加权边;输出一个权值代价和最小的哈密顿环。使用分支限界算法,先令当前的界限定为(最大权值*路数),然后寻找路径依次判定是否有更小值存在。#include<stdio.h>#include<stdlib.h>#include<windows.h>#defi...原创 2015-12-09 21:40:17 · 622 阅读 · 0 评论 -
哈密顿环之深度优先
求解哈密顿环问题,接下来三篇博文将从深度、广度和分支界限算法描述该问题的求解。如有问题请多多指教!哈密顿环问题:输入是一个无向连通图G=(V,E);如果G中存在哈密顿环则输出该环,否则输出“否”。接下来用深度和广度解决哈密顿环问题,用分支限界解决最小哈密换带权问题。深度优先,使用栈的原理存储数据,一旦找到结果就结束。#include<stdio.h>#include<stdli...原创 2015-12-09 21:09:39 · 1159 阅读 · 0 评论 -
Strassen矩阵乘法
矩阵乘法问题输入:n*n的矩阵A和B输出:A和B的乘积C=AB由于计算每个C(i,j)需要n次乘法和n-1次加法,故需n3次乘法和n3-n2次加法,因此算法复杂度为 θ(n3)。考虑分治算法,设n=2K,k>=0。如果n>2,则矩阵可划分为n/2*n/2的子矩阵:上述分治算法的时间复杂度满足递归方程:T(1) = θ(1)T(n) = 8T(n/2)转载 2015-10-06 20:19:01 · 690 阅读 · 0 评论 -
动态规划
使用Dynamic Programming 的条件 1)优化子结构:一个问题的优化解包含子问题的优化解 2)重叠子问题:在问题的求解过程中,很多子问题被多次使用 算法设计步骤 *分析优化解的结构:划分子问题、优化子结构、子问题重叠性 *建立优化解的代价递归方程 *递归的划分子问题,直至不可划分 *自底向上计算优化解的代价,记录优化解的构造信息原创 2016-07-07 16:42:41 · 308 阅读 · 0 评论