摘要: 在软件系统开发中经常回会遇到这样的情况,你实现了一些接口(模块),而这些接口(模块)都分布在几个类中(比如 A和 B、C、D) :A中实现了一些接口,B 中实现一些接口(或者 A代表一个独立模块,B、C、D代表另一些独立模块) 。然后你的客户程序员 (使用你设计的开发人员) 只有很少的要知道你的不同接口到底是在那个类中实现的,绝大多数只是想简单的组合你的 A-D的类的接口,他并不想知道这些接口在哪里实现的。这时我们就要用到Facade 模式,Facade 模式在高层提供了一个统一的接口。 阅读全文
posted @ 2014-05-13 22:09 月轩 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 我们先把数组中的整数转换成字符串,在函数compare中定义比较规则,并根据该规则用库函数qsort排列。最后把排序好的数组中的数字依次打印出来,就是该数组中数字拼接出来的最小数字。这种思路的时间复杂度是O(nlogn)。 阅读全文
posted @ 2014-05-13 16:33 月轩 阅读(216) 评论(0) 推荐(0) 编辑
摘要: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *)); 阅读全文
posted @ 2014-05-13 16:23 月轩 阅读(546) 评论(0) 推荐(0) 编辑
摘要: 将数组转换为字符串······ 阅读全文
posted @ 2014-05-13 15:12 月轩 阅读(2942) 评论(0) 推荐(0) 编辑
摘要: 输入一个整数n,求从1到n这n个数的十进制表示中1出现的次数。例如:输入12,从1到12这些整数中包含1的数字有1,10,11(这里出现了2次)和12, 一共出现了5次。 有2种解法: 第一种:穷举法,从1到n,每个数判断一次,判断的方法是每位除以10,若余数为1,这说明改位含1。复杂度为O(n*logn)。 第二种:递归法,先求最高位出现1的个数,然后去掉最高位递归的求剩下位数中1出现的个数。时间复杂度是O(logn)。 阅读全文
posted @ 2014-05-13 11:51 月轩 阅读(331) 评论(1) 推荐(0) 编辑