‘算法/数据结构’ 分类的存档

介绍异或指针双向链表的概念

2010年8月11日08:33 | 评论关闭
标签:

一道斯伦贝谢软件笔试题

2010年8月1日11:26 | 3 条评论

介绍如何判断单链表中是否存在环路的算法。并给出找出环路起始节点的方法。

2010年7月25日14:24 | 2 条评论

讨论字符串就地逆序的方法,然后对题目加以变换,变成新的题目。

2010年7月18日20:23 | 评论关闭

假设有一个随机函数 int Random(),其产生的数值区间为 0 到8,请利用这个随机函数构造能够产生随机数范围是0到90的随机函数。
这个题目换一种思考方式就可以了,如果 Random 产生数值区间是0到9,那么我们用它来构造随机数,可以这样做:
用 Random 随机产生一个数,代表 个位数
再产生一个数,代表十位数
我们把两个数组合起来,就可以代表0到99中的任何一个数,而且这种组合方式是完全随机的,因此我们就得到了0到99的一个随机函数:

int Random99()
{
return 10*Random() + Random();
}

好吧,现在Random并不是0到9,而是0到8,这也没关系,我们用0-9的随机函数可以构造10进制数字,那为什么不能用0-8的随机函数构造9进制的数呢? 虽然9进制我们没有接触过,但并不代表我们不能使用它啊。一个二位的9进制数,最大可以为:
88,也就是 8 * 9 + 8 = 80,不过90,那么我们用三位的9进制数就可以了,所以我们的随机函数为:

2010年7月16日18:26 | 评论关闭

介绍求二进制数中1的个数的算法解法

2010年7月16日18:12 | 评论关闭

Switch two numbers in place is an old classic algorithm. This article introduces two typical methods to do this work.

2010年7月15日10:50 | 评论关闭