摘要: 题目描述: 输入两个整数m, n;计算需要改变你的二进制表示的多少位才能得到另一个数。例如13二进制为1101, 10的二进制为1010.我们需要改变3位才可以。 算法实现: 阅读全文
posted @ 2016-03-26 16:09 Dormant 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 下面来简单说一下斐波那契数列的有效率的解法: 我们刚刚接触递归时肯定学习了斐波那契数列这样一个经典的例子,但这里的递归算法有一些效率问题。因为如果我们求fib(100)时。我们会发现产生了许多的重复运算。这些不但消耗着计算时间和资源容易产生栈溢出。这是非常危险的。所以下面介绍一个迭代的算法:(算法不 阅读全文
posted @ 2016-03-26 15:19 Dormant 阅读(891) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 算法描述: 如果从头到尾进行扫描的话,时间复杂度为O(n),但这种方法过于简 阅读全文
posted @ 2016-03-26 14:46 Dormant 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 今天来简单说一下计数排序: 当要实现一个排序算法要求时间复杂度是O(n),允许使用常量大小的辅助空间,并且数据的大小在一个可控的范围内,就可以使用计数排序了,也就是辅助数组的大小记录数据的个数,然后输出即可; 算法实现: 阅读全文
posted @ 2016-03-26 10:07 Dormant 阅读(321) 评论(0) 推荐(0) 编辑