算法
文章平均质量分 64
知行且执行
这个作者很懒,什么都没留下…
展开
-
雷德算法
使用雷德算法实现倒位序: 对于自然顺序(二进制)我们是在低位加 1 得到下一位数,对于倒位序我们是在高位加 1 向低位进位。比如已知一个倒位序数是J求其下一个倒位序数,N位总数 ,把J与N/2比较若J=N/2则说明J的最高位为1 ,把最高位置0 ,比较次高位,若次高位为0 ,则把次高位置1,得到J的下一个倒位序,若次高位为1 , 则把次高位置0,以此类推...以N = 8原创 2013-12-04 15:54:30 · 4910 阅读 · 0 评论 -
字符串Hash函数
Hash函数:Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。完美的h原创 2015-07-19 11:29:18 · 760 阅读 · 0 评论 -
HDU1232 畅通工程
Problem Description某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000原创 2015-06-15 21:11:25 · 612 阅读 · 0 评论 -
排序算法(待更新)
1、Bubbling sort#include #include using namespace std;void bubbleSort(int iarray[], int n){ bool flag = false; for(int i=0; i<n-1&&!flag; ++i) { for(int j=i+1; j<n; ++j) { if(iarray[i原创 2015-06-30 22:48:52 · 622 阅读 · 0 评论 -
2015小米在线笔试题
1、问题:输入两个32位int型数,求其他们二进制位有多少不相同。 思路:对输入的两个数m,n进行异或操作结果为a,a的二进制中有多少位为1就是所求结果, 让a分别与32个只有一位为1其它是0的int数进行&操作若不为0就可以判断这位为1. 代码:#include #include #include using nam原创 2015-04-25 10:31:39 · 1289 阅读 · 1 评论 -
2014WAP校园招聘笔试题
这是2014年WAP笔试的第一题,当时没有做出了,最近在网上看到一篇博客写了关于这道题的解法,自己看了看用C++实现了。博客地址:http://blog.csdn.net/litoupu/article/details/41220817题目:AbstractWe are planning an orienteering game.The aim of this game is to原创 2015-05-09 20:32:26 · 2306 阅读 · 0 评论 -
红黑树
一、红黑树性质二叉搜索树中若一个节点没有父节点或子节点则该节点相应属性的值设为NIL,我们视NIL为二叉搜索树的叶节点(外部节点),带关键字的为内部节点。一棵红黑树是满足下列五条性质的二叉搜索树: 1. 树的每个节点不是红色就是黑色 2. 树的根节点是黑色 3. 树的每个叶节点(NIL)为黑色 4. 若节点是红色则它的孩子必须是黑色(若有孩子的话) 5. 树中每一个节点到其原创 2015-04-15 19:47:21 · 782 阅读 · 0 评论 -
NYOJ 304 节能
节能时间限制:1000 ms | 内存限制:65535 KB难度:5描述Dr.Kong设计的机器人卡多越来越聪明。最近市政公司交给卡多一项任务,每天早晨5:00开始,它负责关掉ZK大道右侧上所有的路灯。卡多每到早晨5:00准会在ZK大道上某盏路灯的旁边,然后他开始关灯。每盏灯都有一定的功率,机器人卡多有着自觉的节能意识,它希望在关灯期间,ZK大道右侧原创 2014-12-13 21:04:25 · 1398 阅读 · 0 评论 -
Corners检测
Harris Corners角点检测使用harris corners检测器:使用OpenCV函数void cornerHarris( InputArray src, OutputArray dst, int blockSize, int ksize, double k,原创 2014-03-05 21:48:59 · 1578 阅读 · 0 评论 -
OpenCV中分割图像的分水岭法
OpenCV中分割图像分水岭法:普通的分水岭方法是吧图像看成一张地势图依次吧不同等级的“水”注入区域内,区域不断扩张,为避免两个不同的区域合并就会修筑一条“大坝”即分水岭。但是这种方法会产生过度分割的情况,为了避免这样的情况,我们可以提前大致的分割一下源图像。比如:(以二值图像为例)如图一:我们分割图像为两个区域白色区域(值255)和灰色区域(128),黑色区域(0)为未知原创 2014-02-20 12:11:39 · 2260 阅读 · 0 评论 -
Hough Transform(霍夫变换)检测Circle(圆)的几种方法
使用霍夫变换检测图像中的直线,圆等图形是利用图形函数的从直角坐标系到极坐标系的转换。比如检测直线中,直线方程y = k * x + b , 直线上的所有点都对应着参数( k , b),给定一个点(x0 , y0)我们能够得到通过这个点的所有直线的参数(k , b),易知同一条直线上的点对应的参数(k , b)是相同的利用此信息,我们建立k , b 的累加器,依次计算图像中提取出的原创 2014-03-01 17:09:44 · 9043 阅读 · 0 评论 -
OpenCV中Hough transform(霍夫变换)
霍夫变换所基于的公式:P = X * COS(θ) + Y *SIN(θ) 首先,明确图像坐标,在图像中横轴是从左向右增加,纵轴是从上向下增加,原点在左上角,在使用霍夫变换检测图像中的直线时,P是原点到直线的距离,θ是原点到直线垂线和X轴正方向在顺时针方向的夹角。霍夫变换思想: 我们建立一个累积数组acc[][],对于每一个给定的图像上的点(X0 , Y0)有原创 2014-02-27 09:13:21 · 1546 阅读 · 0 评论 -
快速傅里叶变换(蝶形算法)
一、傅里叶变换 傅里叶变换能将满足一定条件的某个函数表示成三角函数或是它们的积分的线性组合。二、进行傅里叶变换的意义 参见:http://blog.renren.com/share/200123075/6272950196三、快速傅里叶变换 1、离散傅里叶变换 离散傅里叶变换时连续傅里叶变换的离散形式,实现了用计算机计算原创 2013-12-04 19:54:27 · 8897 阅读 · 1 评论 -
常见小问题(待更新)
1、求一组数中第K大或第K小的数思路:使用快速排序#include #include using namespace std;const int ARRAY_LEN = 100;int iarray[ARRAY_LEN];int divide(int low, int high){ if(low>=high)return low; int pvoit = iarra原创 2015-06-30 22:54:04 · 913 阅读 · 0 评论