算法题目
文章平均质量分 51
kimili1987
对数据挖掘、自然语言处理、机器学习、云计算、可信、linux open source有兴趣,希望大家和我交流
展开
-
程序员面试题精选100题(02)-设计包含min函数的栈[数据结构] - c实现
题目来源:http://zhedahht.blog.163.com/blog/static/25411174200712895228171/题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。分析:这是去年google的一道面试题。我看到这道题目时,第一反应就是每次push一个新元素时,将栈里原创 2012-07-09 11:49:25 · 824 阅读 · 0 评论 -
二叉查找树C语言实现
今天练习一下二叉查找树的东东,感觉这个东西,找前驱和后继结点有些绕,再通过后继结点实现删除,更需要好好想一想流程。参照算法导论经典,经过自己的思考,将其中提到的一些基本操作实现了。说明都在注释里呢,这边迷糊的童鞋可以看看,好好想一下。 (我写的都是naive版本的代码,仅供理解算法本身)/*一个关键字元素不重复的二叉查找树及其典型操作的实现,记录关键字出现次数*/#include #inclu原创 2012-09-28 10:30:23 · 1142 阅读 · 0 评论 -
二分查找C语言实现
二分查找的简单实现#include #include #include #define N 20#define N_RAND 200int cmp( const void *a , const void *b ){ return *(int *)a > *(int *)b ? 1 : -1; } //返回在数组中位置 int B_Search(int *a, in原创 2012-09-28 15:29:05 · 1248 阅读 · 0 评论 -
散列表-链接法解决冲突
散列,散列函数采用除留余数法,解决冲突使用链接法,每个槽的链表为带头结点的双向链表。使用这种方法的关键是选择一个合适的除数m,可以选择m是与2的整数幂不太接近的质数(主要是在将字符串转化为整数的过程中)。例如,如果哈希表中要存放2000个字符串,每个字符有8位,一次不成功的查找需要大约检查3个元素。则可以选择m=701,因为接近于装填因子a=2000/3,并且701离2的整数幂都不太近(512(2原创 2012-09-28 17:09:17 · 2357 阅读 · 0 评论 -
归并排序C实现-空间复杂度O1
不喜欢一般的归并排序算法中的合并部分,虽然简单,但是需要先拷贝两个需要归并的有序数组,麻烦。借鉴插入排序的思想,实现归并,空间复杂度为O(1)。相关链接:http://baike.baidu.com/view/90797.htmhttp://www.cnblogs.com/jillzhang/archive/2007/09/16/894936.htmlhttp://www.原创 2012-09-29 09:34:52 · 2478 阅读 · 1 评论 -
1到n中减少了一个数,顺序被打乱,找出缺失的数
2013年的创新工场笔试考了:http://blog.csdn.net/huangxy10/article/details/8026464而且应该还是一道经典的笔试面试题:http://fayaa.com/tiku/view/2/在上面链接中,有人给出如下几种方法:对于丢失一个数的情况: 1)用1+2+...+n减去当前输入数据的总和。时间复杂度:O(n) 空间复杂度:O(1)原创 2012-09-30 20:15:12 · 6941 阅读 · 0 评论 -
深度和广度优先搜索C实现-栈和队列辅助
/*使用邻接矩阵,只关注与搜索算法本身,所以没有考虑边所带的信息之类的东西. 借助堆栈和队列的方法实现深度优先和广度优先搜索 * 广度优先也可以使用递归实现*/ #include #include #include #include #include #define N 6#define N_R 200//#define InfoType charusing namesp原创 2012-09-30 10:06:52 · 1810 阅读 · 0 评论 -
STL 整理(map、set、vector、list、stack、queue、deque、priority_queue)
原链接为:http://blog.csdn.net/lmyclever/article/details/6750041自己转过来,方便写算法的时候查阅一下和方便大家共享。向量(vector) 连续存储的元素Vectorc;c.back() 传回最后一个数据,不检查这个数据是否存在。c.clear() 移除容器中所有数据。c.转载 2012-10-02 21:45:21 · 763 阅读 · 0 评论 -
双向有序循环链表
联系方式:lichunwen1987 AT qq DOT com找工作,各种数据结构和算法问题,写个双向循环链表练习联系吧/*带头结点顺序双向循环链表*/#include #include #include #define N 10#define N_RAND 200typedef struct Node { int key; struct Node * p原创 2012-09-25 22:23:40 · 825 阅读 · 0 评论