数据结构/算法
文章平均质量分 74
我的十六亩三分地
这个作者很懒,什么都没留下…
展开
-
Stein算法求最大公约数
提起求最大公约数数的算法,那么很多人都会想起辗转相除法,即欧几里德算法,算法思想如下:给定两个整数a,b,求a和b的最大公约数,若d是a和b的公约数,则a也是b和a%b的公约数,相反如果a是b和a%b的公约数,那么b也是a和b的公约数,利用这个思想,算法实现如下:int gcd(int a, int b) { int t, r; if(a < b){原创 2013-11-17 11:20:35 · 2163 阅读 · 0 评论 -
面试题:最小数字
本题来自@陈利人 微信公众账户:待字闺中原题对于一个n位正整数a,去掉其中任意k(k例如,a=13243221,k=5,输出:121对于题目中的例子,数字13243221,删除5个数字之后,使得剩下的几个数字组成的整数最小。先考虑简单的解决办法:当k=1时,如果要删除13243221中的一个数字使得剩下的几个数字组成的整数最小,很显然,应该原创 2013-11-13 22:57:13 · 1465 阅读 · 1 评论 -
字符串匹配之KMP算法
KMP算法字符串查找子串原创 2013-11-07 11:32:32 · 2177 阅读 · 0 评论 -
动态规划算法
动态规划算法面试题:给定字符串,以及一个字典,判断字符串是否能够拆分为字段中的单词。例如,字段为{hello,world},字符串为hellohelloworld,则可以拆分为hello,hello,world,都是字典中的单词。原创 2013-10-20 21:13:38 · 1141 阅读 · 0 评论 -
二分搜索总结
一般二叉搜索有重复元素的二叉搜索改进的二叉搜索有重复元素并且要锁定到第一个还是最后一个元素的二叉搜索原创 2014-03-13 16:16:52 · 1448 阅读 · 0 评论 -
Morris二叉树遍历算法
在遍历儿叉树时,常常使用的是递归遍历,或者是借助于栈来迭代,在遍历过程中,每个节点仅访问一次,所以这样遍历的时间复杂度为O(n),空间复杂度为O(n),并且递归的算法易于理解和实现,二叉树的递归遍历算法代码如下:儿叉树的定义:typedef struct BNode { char ch; struct BNode *left, *right;} BNode, *BiTre原创 2014-03-21 11:42:49 · 7019 阅读 · 0 评论 -
从二叉查找树到平衡二叉树再到红黑树
从二叉查找树到平衡二叉树再到红黑树的分析与实现原创 2014-04-12 11:10:39 · 2815 阅读 · 0 评论