11 2009 档案

与二进制相关的算法
摘要:描述: 判断一个正整数n是否是2的幂算法: int isExp2(int n) { if (n<=0) return 0; return n&(n-1)?0:1; }分析: 这个算法时间复杂度是O(1),没想到吧!我想到的算法是,将n一直除2直到n变为0,如果途中出现余数不为0则说明n不是2的幂。 这样算法时间复杂度是O(log2(n))。可谁知利用二进制二进制位运算后,立马变为O(... 阅读全文

posted @ 2009-11-21 15:26 John Waken 阅读(802) 评论(3) 推荐(0)

变长参数的实现
摘要:我们用的最多的C函数是哪个?毫无疑问,是printf。但是你看过printf的声明式吗,那是相当诡异。随便拿一本带C库函数参考的书,可查到如下结果: int printf(const char *format, ...);那三个连续的点就代表大于或等于0个参数,再加上前面的format参数,所以printf函数至少要接受一个字符串,后面就随便了。但是这是如何实现的呢,不急,首先必须要了解C语言函数... 阅读全文

posted @ 2009-11-08 13:51 John Waken 阅读(1400) 评论(0) 推荐(0)

3. 库函数的实现
摘要:声明: 此系列文章尚未完成,请勿转载,谢谢合作梗概这一节新增的文件有:stdarg.h 用来处理可变参数ctype.h 判断变量一些属性。比如一个字符是不是大写,是不是数字string.h string.c 常用的关于字符串的操作vsprintf.h vsprintf.c 该节的主要文件用来实现格式化输出改变的文件有:test.c 主要用来测试 printk函数正文大家上程序设计课程写的第一个程序... 阅读全文

posted @ 2009-11-08 12:24 John Waken 阅读(1844) 评论(0) 推荐(0)

an interesting little algorithm
摘要:Problem Description: Given an array with N capacity, which store N integers from 1 to N-1 with one and only one integer occurs twice, please find that repeated integer. Note, limit the time complexit... 阅读全文

posted @ 2009-11-03 22:12 John Waken 阅读(224) 评论(0) 推荐(0)

导航