算法
文章平均质量分 60
eagleatustb
学习永远没有终点
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
红黑树的实现(int精简版)
最近在阅读SGI STL源代码,其中红黑树的实现比较有技术含量,但标准库里面是捆绑了其中的allocator, iterator(Rb_tree专用的),使用很多模板变量,实现对多种数据类型的处理。这些情况对于有较扎实C++基础的人来说不成问题,但对于一般初学算法,而又没有太好的C++基础的人来说有点困难。并且SGI STL中的实现代码写得很精巧,节省代码,也高效运行,但会使得功能不够深厚的人读起原创 2012-10-12 16:54:47 · 1879 阅读 · 0 评论 -
base64编码函数
闲来无事,写个base64编码原创 2014-07-25 12:12:13 · 3114 阅读 · 0 评论 -
从多个文件中搜索指定单词功能实现
前两天在看linux内核代码,因为还没有很熟悉,有一些函数不知道在哪个文件里,手动找很麻烦,于是在windows下写了个文件搜索单词功能的小程序。只是实现了连续字母的搜索,也花了我两个小时写程序,后面第二天又测试调度了两个小时,今天第三天又用C++重写了这个功能;算是可以使用,放出来分享一下,如果有bug,请帮忙报告一下。1. 说明一下类CFindWord的功能:先使用Init函数附带fold原创 2013-12-15 19:18:45 · 2649 阅读 · 0 评论 -
QQ彩票快3返还概率分析
这是之前玩快3的时候计算的一个返还率时所写的程序。快3说白了就是一个赌博游戏,三个骰子摇出结果,你猜是多少,猜中的话根据不同数字的赔率返还。我只计算理想状态下猜三个骰子和值的返还率,不管QQ网站的算法能不能达到理想状态的分布情况。 总共有三个骰子,每个骰子可以取值1-6,和的取值范围是3-18,网站上去掉了最大值18和最小值3不作下注对象,估计是有猫腻;我把这两个情况也计算进去,也算原创 2013-12-13 20:48:54 · 3735 阅读 · 0 评论 -
几个常见的字符串HASH
最近在看开源代码中遇到一些HASH处理字符串的问题,也搜索了些资料,摘录如下: PHP中出现过的HASHstatic unsigned long hashpjw(char *arKey, unsigned int nKeyLength){ unsigned long h = 0, g; char *arEnd=arKey+nKeyLength; whi原创 2013-05-06 22:42:55 · 1099 阅读 · 0 评论 -
求topK问题
最近关注一下数据算法面试的时候常考的题目,复习一下常用排序。以下是堆排序,常用在topK问题求解中。// Heap sort;void MaxHeapify(int * src, int pos,int count){ int l = (pos<<1)+1; int r = l+1; int maxpos = pos; if (lsrc[pos]) { maxpos原创 2013-05-02 17:01:19 · 1352 阅读 · 0 评论 -
随机排列数组的产生
在做hashmap测试数据生成的时候,留下了一个问题——随机数的生成。关于真随机数的生成,都需要硬件设备运行中采样的数据。是否真的做到随机,就要看采样的结果是否符合均匀分布。可以参考一下这篇文章 http://www.cnblogs.com/hehehu/archive/2005/08/23/221125.html 在这里讨论的是随机排列数组的问题,问题引入: 给定正数原创 2013-05-04 15:22:58 · 2005 阅读 · 0 评论 -
字符串的左旋转最佳解法
题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数,要求对长度为n的字符串操作的时间复杂度为O(n),空间复杂度为O(1)。思路:其实这种题目很好解。直接对每个位置迭代求数据来源位置就可以了。有另外一些解法,比如交换法,双反转法,递归法,对于解此题目没什么高效的解法。我认为以下解法完原创 2012-10-19 15:12:36 · 1643 阅读 · 3 评论 -
计算二进制数低位连续是0的个数
今天碰到一个网友问如何找二进数低位连续0的个数,从网上搜索到一个有趣的网站http://graphics.stanford.edu/~seander/bithacks.html#IntegerLog;另外有解析http://www.matrix67.com/blog/archives/3985 从上面摘录一些东西下来:Find the log base 2 of an N-b原创 2013-08-09 18:13:15 · 2953 阅读 · 0 评论 -
交换两数组元素使两数组和差值最小
题目:有两个数组a,b,大小都为n,数组元素的值任意,无序;要求:通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小 很久之前就看到过这条题目,思路是有的,也没看网上其他人是怎么解的: 1. A,B需要分别建最大堆(复杂度2N),维护各自的和值sumA,sumB, 2. 如果堆A和堆B都非空;原创 2013-05-11 23:24:31 · 3395 阅读 · 0 评论 -
整数四则混合混算的表达式计算
本文实现整数的四则混合混算。比如:输入(5+8*4+7)*9-3*(13+2*6),返回计算结果为321。 思路:正向扫描表达式,使用两个栈分别存储整数和符号,有括号的先计算括号中的值。遇到乘除法先计算。经过以上计算后得到最后的式子为只有加减法的无括号式子。再计算最后结果。 流程描述:1. 扫描字符t。2. 若为’\0’,跳到4;若为’*/+)’,入符号原创 2012-10-31 14:01:04 · 1633 阅读 · 0 评论 -
找链表中的环
之前看到一道题目,给出一个IP链,如果某个指针指向之前已经指向过的地址,则需要找出这类带环的链,并找出环的入口。以下用C实现代码:struct Node{ Node * _next; int _value;};Node* insert(Node * head,Node * n){ assert(head); if (n) { n->_next = he原创 2013-05-03 11:22:20 · 932 阅读 · 0 评论 -
无聊写个快排
又周末,无聊又写写快排~void QSort(int array[],int p,int q){ int begin = p; int end = q; int mid_value =array[begin]; if (begin>=end) { return; } while (begin<end) { while((begin=mid_value)) {原创 2013-03-22 23:19:40 · 936 阅读 · 0 评论 -
sin迭代法实现
因为无聊,回想上学时的一些数学分析的题目,实现一个sin玩玩。//sin x≈x/1!-x^3/3!+x^5/5!-...(-1)^(n-1) x^(2n-1)/(2n-1)!double mysin(double x){ int n = 15;//迭代15次,可以根据需要修改迭代次数或改成参数传进来 double x = 3.1415926*30.0/180;// double s原创 2013-03-18 11:31:12 · 2510 阅读 · 0 评论
分享