算法
文章平均质量分 80
草原面朝大海
技术的力量
展开
-
五大常用算法之二:动态规划算法
http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741374.html一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略 基本思想与分治法类似,也是将待求解的转载 2013-04-27 14:53:38 · 677 阅读 · 0 评论 -
编码学习记录:输入包含N个自然数(N<10000),每个数不大于15000(鸽巢原理)
编码学习记录:输入包含N个自然数(N实现函数定义 VOID getMultiple(IN UINT uiN, IN UINT* puiArr, OUT UINT* puiOutN, OUT UINT* puiOutArr )其中uiN 为输入数的个数,puiArr为输入的数组,puiOutN为选择数的个数,puiOutArr为选择的那些数分析:一定存在一个连续的数列的和是N的倍数原创 2013-09-24 23:50:23 · 1220 阅读 · 0 评论 -
Fibonacci Gibonacci 函数实现
Gibonacci数列有关,其实就是一个Fibonacci数列有关,只是是在系数和常数上.G(0)=1,G(1)=t(t为一个随机数)给出i,G(i),j 三元组,求G(j),如果不存在,则输出为0很容易推出(找规律即可) 实际上,设 G2=Temp * F2 ,t = temp-1G(i)=F(i)*t+F(i-1) F表示Fibonacci数列以下是我写的代码,为了方原创 2013-09-03 01:57:36 · 818 阅读 · 0 评论 -
椭圆曲线ECC加密算法
本文转自:http://tech.csai.cn/web/200604021704531906.htm原文中有点小错误,我已改正前言 同RSA(Ron Rivest,Adi Shamir,Len Adleman三位天才的名字)一样,ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)也属于公开密钥算法。目前,国内详细介绍ECC转载 2013-06-26 20:00:21 · 2300 阅读 · 0 评论 -
常见排序算法的实现与性能比较
本次是算法课实验,本人在此将每个算法都实现了一下,其中对桶排序算法还有较大改进空间,改用链表结构会快很多。1.合并算法:将两个或两个以上的有序表组合成一个新的有序表,假定排序表含有n个元素,则可以看做n个有序子表,每个子表长度为1,然后两两归并,得到n/2个长度为2或者1的有序表;再进行两两归并,如此重复,直到合并成一个长度为n的有序表为止。 合并算法是分治法的应用,其操作可以表示如下:原创 2013-06-16 14:10:14 · 1488 阅读 · 0 评论 -
螺旋队列问题
abs 函数定义在 stdlib.h 中 而不是定义在 math.h 中,我们编程的时候需要注意下http://blog.csdn.net/forgotaboutgirl/article/details/6780548螺旋队列问题下面是一个螺旋队列: 73 74 75 76 77 78 79 80 81转载 2013-04-24 21:06:01 · 681 阅读 · 0 评论 -
常见排序算法 稳定性分析
这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人准备的。 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相转载 2013-05-08 20:20:55 · 930 阅读 · 0 评论 -
二叉搜索树 及 c++代码实现
本文算法参考《算法导论》chp12未解决问题:搜索时越界问题完美解决。(解决方案1.可以是在每个叶子结点都设置标志位,2.在每个结点后认为加一个节点,这样开销会更大些) 本文提供了一种解决方案,不过在main函数进行返回值判定,代码封装性并不是特别好构造二叉树、插入、删除、搜索、 查找最大值、最小值、前驱、后继的各种实现具体代码如下:#include#inclu原创 2013-06-16 17:41:02 · 1180 阅读 · 0 评论 -
一致性哈希(综合版本)
对一致性哈希算法,我建议初学者可以从这三篇网文顺序看起,如果要再想深入,就看知网上的讲解了哈。第一篇:http://blog.csdn.net/sparkliang/article/details/5279393 简单初学易懂,但不深入,无法解释已经存储object,在荡机后该如何恢复。第二篇:http://stblog.baidu-tech.com/?p=42 开始转载 2013-04-30 23:26:20 · 619 阅读 · 0 评论 -
zigzag矩阵
ZigZag数组就是形如下图的,依次沿对角线增加->减小交替变换的数组0 1 5 6 14 15 27 282 4 7 13 16 26 29 423 8 12 17 25 30转载 2013-04-24 17:00:24 · 1453 阅读 · 0 评论 -
子集和问题 及 c++ 代码实现
首先声明:子集和问题可以用动态规划问题解决,即01背包问题的解法即可。在这里我们采用下构造树的问题。问题: 给定n个正整数{wi|i=0...n}和一个正整数m,在这n个正整数中找出一个子集,使得子集中的正整数之和等于m。 解的形式: 设定一个n元组(x0,x1,...xn-1),如果wi包含在这个子集中,x是解向量,xi就等于1,反之等于0.X原创 2013-06-14 17:03:28 · 5345 阅读 · 0 评论 -
01背包问题 及c++ 代码实现
今天在看july的博客之时,看到其中一道题目的原理为01背包问题,就自己温习了下,写下今天的学习体会。本文理论分析参考博客:http://www.cnblogs.com/qinyg/archive/2012/04/26/2471829.html问题描述: 给定N个物品和一个背包,其中物品i的重量是Wi,其价值为Vi ,背包的容量为C。问应该如何选择装入背包原创 2013-06-14 01:12:11 · 17503 阅读 · 0 评论 -
字符串转换成整数,字符串匹配问题
本文转自csdn大神v_JULY_v的博客地址:http://blog.csdn.net/v_july_v/article/details/9024123阅读心得:自己原先想得太天真了。。。第三十~三十一章:字符串转换成整数,字符串匹配问题前言 之前本一直想写写神经网络算法和EM算法,但写这两个算法实在需要大段大段的时间,而平时上班转载 2013-06-05 21:12:03 · 1080 阅读 · 0 评论 -
动态规划 (Dynamic Programming) 之 最长递增子序
既然已经说到了最长公共子序列,就把这个递增子序列也说了。同样的,这里subsequence表明了这样的子序列不要求是连续的。比如说有子序列{1, 9, 3, 8, 11, 4, 5, 6, 4, 19, 7, 1, 7 }这样一个字符串的的最长递增子序列就是{1,3,4,5,6,7}或者{1,3,4,5,6,19}。其实这个问题和前面的最长公共子序列问题还是有一定的关联的。假设我们的初始的序列转载 2013-05-29 19:37:18 · 1137 阅读 · 0 评论 -
桶排序
从《基于比较的排序结构总结 》中我们知道:全依赖“比较”操作的排序算法时间复杂度的一个下界O(N*logN)。但确实存在更快的算法。这些算法并不是不用“比较”操作,也不是想办法将比较操作的次数减少到 logN。而是利用对待排数据的某些限定性假设 ,来避免绝大多数的“比较”操作。桶排序就是这样的原理。 桶排序的基本思想 假设有一组长度为N的待排关键字序列K[1....n]。转载 2013-05-29 10:07:56 · 702 阅读 · 0 评论 -
微软等面试100题答案精选
本文转自csdn大神 http://blog.csdn.net/v_JULY_v/article/details/6126444微软等面试100题答案V0.3版第21-40题部分答案精选 作者:July 、何海涛等网友-------------------------------------开诚布公,接受读者质检本文,是根据我之前上传的,微软等面试100转载 2013-05-17 23:31:56 · 1509 阅读 · 0 评论 -
上电梯问题
公司新建一幢大厦,有很多楼层。现设计师觉得每个电梯都又所有的楼层的按钮太麻烦了,因此将电梯设计成只有两个按钮,第i个电梯有两个按钮,一个按钮uiUp,表示上升uiUp层,一个为uiDown,表示下降uiDown层。 我们假设电梯永远到不了顶层,但电梯最低为0层。所有电梯初始都在第0层。 现有共m个电梯,你可以选择其中一个,但是选取之后就不能变换电梯了,当你走进这座大楼,按n次电梯按钮原创 2013-10-15 00:08:38 · 1288 阅读 · 0 评论