摘要: 一、对于基本声明 1.const int r=100; //标准const变量声明加初始化,因为默认内部连接所以必须被初始化,其作用域为此文件,编译器经过类型检查后直接用100在编译时替换。2.extend const int r=100; //将const改为外部连接,作用于扩大至全局,编译时会分配内存,并且可以不进行初始化,仅仅作为声明,编译器认为在程序其他地方进行了定义。3.const int r[ ]={1,2,3,4}; struct S {int a,b;}; const S s[ ]={(1,2),(3.4)}; //以上两种都是常量集合,编译器会为其分配内存,所以不能在编译期间 阅读全文
posted @ 2013-09-26 14:12 来自你520的末班车 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 1、define——(无参数宏定义)用法一般形式为:#define标识符 字符串(1)“#”表示其为预处理命令,凡是以“#”开头的都是预处理命令;“define”为宏定义命令;“标识符”为所定义的宏名;“字符串”可以是常数、表达式、字符串等。(2)除了经常用到的如“#define MAXNUM 100”之外,还有其它多种灵活的用法,如“#define M (y*y+3*y)”,注意,的表达式中()是必须的,否则在进行如“2*M+2”的运算时就会出现错误。(3)末尾不需要分号(如果加分号,会连同分号一起代换)。(4)define只是做简单的文本替换。(5)作用域为宏定义开始,到源程序结束,终止定 阅读全文
posted @ 2013-09-26 10:56 来自你520的末班车 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 记得去年上算法分析课的时候讲过怎么快速的修改数组,比如,把数组中偶数放在前面,奇数放在后面;把数组中能被三除尽的数放在前面,不能的则放在后面。。。 如果,我没看到那道题我的思路肯定是一个一个的写函数呗,不就是快速排序的思想吗,不过,当我看到了那道题的解法后,发现,真的应该好好想想函数的通用性。 下面,我直接贴出代码:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#include int quick_insert_(int *data, in.. 阅读全文
posted @ 2013-09-26 10:51 来自你520的末班车 阅读(529) 评论(0) 推荐(0) 编辑
摘要: 题目 求整数N的开方,精度在0.001 思路 这里给出多种实现方案,读者自取 二分法 若N大于1,则从[1, N]开始,low = 1, high = N, mid = low + (high - low) 》 1开始进行数值逼近 若N小于1,则从[N, 1]开始,low = 0, high = N, mid = low + (high - low) 》 1开始进行数值逼近 ac代码 /** * 创新工厂2014年校招算法题目,求整数N的开方,精度为0.001 */ #include #include #include #define ACCURACY 0... 阅读全文
posted @ 2013-09-25 11:23 来自你520的末班车 阅读(1027) 评论(0) 推荐(0) 编辑
摘要: 问题描述 给定一个整数序列(可能有正数,0和负数),求它的一个最大连续子序列乘积。比如给定数组a={3, -4, -5, 6, -2},则最大连续子序列乘积为720,即3*(-4)*(-5)*6=720. 分析 求最大连续子序列乘积与最大连续子序列和问题有所不同,因为其中有正有负还有可能有0. 假设数组为a[],直接利用动归来求解,考虑到可能存在负数的情况,我们用Max[i]来表示以a[i]结尾的最大连续子序列的乘积值,用Min[i]表示以a[i]结尾的最小的连续子序列的乘积值,那么状态转移方程为: Max[i]=max{a[i], Max[i-1]*a[i], Min[i-1]... 阅读全文
posted @ 2013-09-25 11:15 来自你520的末班车 阅读(1059) 评论(0) 推荐(0) 编辑
摘要: 希尔排序,是对直接插入排序的改进版本,又称增量缩小排序,实质上是一种分组插入排序。 基本思想是 先取第一个增量step,以该序列内所有下标相差 step 的元素作为一组,如 array[0], array[0 + step], array[0 + step*2].....作为一组,array[1], array[1 + step], array[1 + step*2]....作为一组,然后对这些分组分别进行直接插入排序,然后减小增量,重复进行上面操作,到最后 step = 1,这时序列已基本有序,对数组再次进行直接插入排序,这种情况下的直接插入排序复杂度为 O(n),而且保证了最后的结... 阅读全文
posted @ 2013-09-25 11:13 来自你520的末班车 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 1.为啥PHP需要异步操作?一般来说PHP适用的场合是web页面展示等耗时比较短的任务,如果对于比较花时间的操作如resize图片、大数据导入、批量发送EDM、SMS等,就很容易出现操作超时情况。你可以说我可以设置无限超时时间,等等你也要知道PHP有一个工作模式是fastcgi,PHP无限不超时,不代表 fastcgi相应不超时……如果你还想说要fastcgi相应永不超时,我建议你应该跟你们的运维人员讨论去……这个时候异步的操作就发挥他的作用了,由于是非阻塞操作,操作会即时返回,然后在后台再慢慢干活。管你超时不超时的,我就没有在当前的进程/线程下干活。看吧是不是很美好,不过其实这也是个坑……2 阅读全文
posted @ 2013-09-24 16:42 来自你520的末班车 阅读(219) 评论(0) 推荐(0) 编辑
摘要: print?#include #include #include typedef struct Mystack *Stack; struct Mystack { int Capacity; /* 栈的容量 */ int Top_of_stack; /* 栈顶下标 */ int *Array; /* 存放栈中元素的数组 */ }; /* 栈的创建 */ Stack CreateStack(int Max) { Stack S; S = malloc(sizeof(struct Mystack)); if (S == NULL) printf("Create... 阅读全文
posted @ 2013-09-24 10:06 来自你520的末班车 阅读(1621) 评论(0) 推荐(0) 编辑
摘要: 1.作用 单例模式目的就是为了保证一个类只有一个实例。 2.原理 (1)私有静态指针变量实现:使用类的私有静态指针变量指向类的唯一实例,并用一个公有的静态方法获取该实例。 (2)静态局部变量实现:在公有静方法中定义指向该类的一个静态局部变量,并返回该静态局部变量。 3.实现 3.1.私有静态指针变量实现 3.1.1.特点 A.它有唯一一个私有的、指向类的的静态成员指针m_pInstance. B.它有一个公有的暴露该单例的静态方法getInstance. C.构造函数是私有的,避免从其他地方创建该类实例。 D.定义单例类中私有内嵌类CGarbo,在其析构函数中释放单例... 阅读全文
posted @ 2013-09-24 09:59 来自你520的末班车 阅读(189) 评论(0) 推荐(0) 编辑
摘要: C语言中##称为连接符,其功能是在带参数的宏定义中将两个子串(token)联接起来,从而形成一个新的子串。 要注意下面的用法: 1、 [cpp] #include #define debug(format, args...) fprintf(stderr, format, args) void main(void){ debug("Test \n"); return; } 有的说这种情况下字符串后面会多一个逗号,但是我用gcc编译不通过; 2、 [cpp] #include #define debug(format, args...) fprintf(stde... 阅读全文
posted @ 2013-09-23 14:20 来自你520的末班车 阅读(507) 评论(0) 推荐(1) 编辑