算法与设计
文章平均质量分 65
beginTheWorld
相当于别人读初中的水平我要读大学
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
大数据处理算法(非分布式处理)
题目都是重网上收集而来 1.Bloom filter 适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集 基本原理及要点: 对于原理来说很简单,位数组+k个独立hash函数。将hash函数对应的值的位数组置1,查找时如果发现所有hash函数对应位都是1说明存在,很明显这个过程并不保证查找的结果是100%正确的。同时也不支持删除一个已经插入的关键字,原创 2013-08-24 16:50:03 · 710 阅读 · 0 评论 -
开方 牛顿迭代公式
牛顿迭代公式 设r是f(x) = 0的根,选取x0作为r的初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0)+f'(x0)(x-x0),求出L与x轴交点的横坐标 x1 = x0-f(x0)/f'(x0),称x1为r的一次近似值。过点(x1,f(x1))做曲线y = f(x)的切线,并求该切线与x轴交点的横坐标 x2 = x1-f(x1)/f'原创 2013-09-21 15:42:35 · 1659 阅读 · 0 评论 -
快速判断是否是兄弟字符串
题目 如果两个字符串的字符一样,但是顺序不一样,被认为是兄弟字符串,问如何迅速匹配兄弟字符串? 字符串有a--Z组成。 初始化两个数据 int count_one['Z'-'a'+1],count_two[] 为0 for(i=0;i { count_one[*(str1++)-'a']++; count_two[*(str2++)-a]++; } 最后判断co原创 2013-09-20 20:21:10 · 999 阅读 · 0 评论 -
伪随机解决真随机问题
从文件中随机取一行数据 如果先统计文件有多少行,再根据rand() % 行数选择对应行也是可以行的,但效率显然会有点低了。有没有一种方法可以只遍历文件一次了?请看代码: [cpp] view plaincopy //从文件中取机选取一行 #include #include #include #include int转载 2013-07-09 21:48:26 · 1165 阅读 · 0 评论 -
高效率安排见面会问题(比编程之美的解法复杂度低n-1个数量级)
在编程之美中,有一道高效安排见面会的问题 问题描述如下 已知有n位学生,他们分别对M个研究项目中的若干个干兴趣,每个见面会的时间为T,每个学生都能参加自己感兴趣的所有见面会,如何安排时间总时间最短?? 编程之美的解法 把该问题转化成图染色的问题, 每个见面会为一个点,如果有个同学对其中两个见面会感兴趣,那么这两点就有一天联系, 染色问题:就是如果两个点之间有连线,那么他们要用不同的颜原创 2013-08-26 22:39:46 · 964 阅读 · 0 评论 -
poj 3281,最大流,牛吃食物问题
Description Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will consume no others. Farmer John has cooked fabulous meals for his cows, but he forgot原创 2013-09-09 15:14:22 · 896 阅读 · 0 评论 -
单链表中通过某一结点指针删除该结点
删除p指向的结点: 思路: 把p的下个结点内容拷贝到p,然后把删除p的下个结点; /* 考虑的情况: 1. p是空 2.p 指向单链表最后一个结点; 3.p 指向单链表的头结点 */ /* input : P,将要删除结点的指针 output : 1(成功),0(失败),-1(失败,但是把结点删除了) 功能: 删除链表中的结点 */ int deleteTheNodeInL原创 2013-08-28 10:26:17 · 1265 阅读 · 0 评论 -
雷达覆盖岛屿的问题
acm的题 在地平线两侧,存在着岛屿,现在需要安装对岛屿进行监控,雷达的辐射半径是 r , 岛屿以坐标表示,地平线为X轴,用最少的雷达监控所有的岛屿 此题需要先建模 以岛屿为圆心,半径为r画圆,与X轴相交于两点形成一个闭区间 [a1 b1], [a2 b2] [a3 b3] [an bn]; 下标为岛屿的编号, [an bn]表示以岛屿n为圆心原创 2013-08-30 19:07:03 · 1186 阅读 · 0 评论 -
链表中倒数第K个元素,
/* 在链表中找倒数第k个元素 考虑的问题 : 链表可能会空, K可能会很大,超过链表的个数, 链表的结点个数超过int 表示的范围 */ LinkNode *findTheLastKInlist (LinkNode *head,int k) { LinkNode *tem=NULL; tem=head; LinkNode *pLastK=NULL;//the last kth node p原创 2013-08-28 09:46:28 · 529 阅读 · 0 评论 -
一个数组实现三个栈
基本思想是: 第一个栈 为数组头,栈增长方向向上; 第二个栈,数据尾,栈增长方向向下, 第三个栈,在数组中间,栈增长方向向下; 第一个与第二个栈不用搬迁,因为他们都在数组的端,第三个栈,需要搬迁,来满足三个栈对空间的需求, 搬迁的策略: 采用慵懒的策略,只有三个栈中其中一个进行push操作是,如果没有足够的空间,才搬迁第三个栈; 代码: class threeStackUs原创 2013-08-28 17:00:49 · 1013 阅读 · 0 评论 -
链表表示的数字相加
题目 You have two numbers represented by a linked list, where each node contains a single digit. The digits are stored in reverse order, such that the 1’s digit is at the head of the list. Write a fu原创 2013-08-28 13:18:05 · 779 阅读 · 0 评论 -
音频指纹的算法--飞利浦解决方案
这个音频指纹暂时用来做同源音频聚类,判断歌曲是否是同一源的, 这里先介绍下飞利浦的方案-------A Highly Robust Audio Fingerprinting System,这个算法是在他上面的优化, 通过能量差分的关系,求得音频两个帧之间的能量关系,产生指纹。 公共傅里叶变换成频率信息,把300 ---- 2000HZ 频率映射到33个频率带,计算各频率带的能原创 2014-02-28 13:33:35 · 6005 阅读 · 2 评论
分享