算法学习
文章平均质量分 70
ether
在读研究生,努力学习!
展开
-
算法导论Ch2.1-4习题
题目: 有两个各存放在数组A和B中的n位二进制整数,考虑它们的相加问题。两个整数的和以二进制形式存放在具有(n+1)个元素的数组C中。请给出这个问题的形式化描述,并写出伪代码。分析:二进制整数的编码,此处考虑原码和补码,原码可以通过转化成补码来运算,这也体现了补码在运算上的优势。实质为模拟计算机二进制补码的加法计算机中采用补码进行加法运算,并约定存储单元和运算寄存器中的数原创 2012-10-11 14:57:28 · 1248 阅读 · 0 评论 -
算法导论第二章习题的一些思考
2.3-6 题目大意是结合二分查找来改进插入排序,能否使插入排序的最坏运行时间改善至O(nlgn)?在插入排序中,将数据插入已排序的序列中使用的是反向遍历,最坏情况是完全遍历,使用二分查找可以减少搜索应该插入位置的时间。而二分查找的时间为O(lgn),放入外层for(1-n)的遍历中,那么看似时间变为了O(nlgn)。其实不然,这要理解插入排序的时间花费不仅仅是在搜索插入位置上,更多的是在原创 2012-10-13 15:13:45 · 1185 阅读 · 1 评论 -
Hamming Weight的算法分析
看代码时遇到一个求32bit二进制数中1的个数的问题,感觉算法很奇妙,特记录学习心得于此,备忘。<!--@page {margin:2cm}pre.western {font-family:"DejaVu Sans Mono",monospace}pre.cjk {font-family:"DejaVu Sans Condensed",monospace}pre原创 2012-10-21 13:57:32 · 8394 阅读 · 2 评论 -
随机数相关(算法导论5.1.2)
算法导论5.1.2 题目这样描述: 给出RANDOM(a,b)函数的一种实现,它只调用RANDOM(0,1)。 并给出程序的期望运行时间。想法:构造出一个样本集合U,其包含的元素个数为b-a+1,这样可以实现与a~b的一一映射,那么问题转化为,从集合U中等概率的取出一个元素。然而手头只有RANDOM(0,1)函数这一个资源,它能做的事情就是可以等概率的获得0或1,很自然的想到用它来构造原创 2012-11-06 16:17:25 · 1188 阅读 · 0 评论 -
欧几里德算法和stein算法
用于计算最大公约数和最小公倍数的算法。最小公倍数的可由最大公约数计算得到,即已知a和b的最大公约数c,那么a和b的最小公倍数为ab/c。这样就都转化为求最大公约数的问题了。问题描述:已知正整数a,b,求它们的最大公约数gcd(a,b)。欧几里德算法(辗转相除法):1)使a为两数中较大的,b为较小的(a>b),计算a%b=r, 如果r等于0,那么b即为最大公约数,原创 2013-07-15 11:05:06 · 1439 阅读 · 0 评论