- 博客(13)
- 资源 (20)
- 收藏
- 关注
原创 算法空间复杂度
1)搞清概念问题 空间复杂度(SpaceComplexity)是对一个算法在运行过程中临时占用存储空间大小的量度。 一个算法的空间复杂度只考虑在运行过程中为局部变量分配的存储空间的大小:包括为参数表中形参变量分配的存储空间和为在函数体中定义的局部变量分配的存储空间两个部分。 若一个算法为递归算法,其空间复杂度为递归所使用的堆栈空间的大小,它等于一次调用
2013-10-22 21:42:34 1184
转载 Linux下逻辑地址-线性地址-物理地址图解
1、逻辑地址转线性地址 机器语言指令中出现的内存地址,都是逻辑地址,需要转换成线性地址,再经过MMU(CPU中的内存管理单元)转换成物理地址才能够被访问到。我们写个最简单的hello world程序,用gccs编译,再反编译后会看到以下指令:mov 0x80495b0, %eax这里的内存地址0x80495b0 就是一个逻辑地址,必须加上隐含的DS 数据
2013-10-21 22:09:43 786
原创 bitmap运用实例
问题实例】1)已知某个文件内包含一些电话号码,每个号码为8位数字,统计不同号码的个数。8位最多99 999 999,大概需要99m个bit,大概10几m字节的内存即可。 (可以理解为从0-99 999 999的数字,每个数字对应一个Bit位,所以只需要99M个Bit==1.2MBytes,这样,就用了小小的1.2M左右的内存表示了所有的8位数的电话)2) 2.5亿个整数中
2013-10-19 12:31:48 1264
原创 bitmap技术简单实现
#define BITSPERWORD 32 #define SHIFT 5 #define MASK 0x1F #define N 10000000 int a[1 + N/BITSPERWORD];//申请内存的大小 //set: set the bit to 1 void set(int i) { a[i>>SHIFT] |= (1
2013-10-19 11:16:16 1065
原创 模运算%和位与运算&之间的关系
First Look:#include int main (void){ unsigned int MAX = 32; unsigned int index = 31; index = 31; index = (index + 100) % MAX; printf ("index = %d\n", index); index = 31; index = (index
2013-10-19 10:47:50 2122
原创 关于几个指针的迷惑
先看如下程序:int main() { int a [5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); //区别于a和a[0]以及&a ! printf("%d,%d\n",*(a+1),*(ptr-1)); } 输出结果为2,5这里需要弄明白的是数组和指针的关系: int a[5]; cout<<
2013-10-18 22:56:11 804
转载 Windows线程创建、退出及资源释放
原文链接:http://blog.csdn.net/xwdpepsi/article/details/12375577可以通过以下几种方法创建一个线程:1、CreateThread2、_beginthread3、_beginthreadex4、AfxBeginThread--------------------------------------------------
2013-10-08 17:00:48 1389
转载 指针与引用的区别,指针与引用的底层实现是否一样?
原文链接:http://blog.csdn.net/lingfengtengfei/article/details/12345437指针与引用,在More Effective C++ 的条款一有详细讲述,条款一:指针与引用的区别 指针与引用看上去完全不同(指针用操作符’*’和’->’,引用使用操作符’.’),但是它们似乎有相同的功能。指针与引用都是让你间接引用其他对象。你如
2013-10-07 16:23:21 789
原创 从1异或到N
#include using namespace std;unsigned xor_n(unsigned n){ unsigned t = n & 3; if (t & 1) return t / 2u ^ 1; return t / 2u ^ n; }int main(int argc, char* argv[]){ const int N = 12;
2013-10-07 09:26:26 4011
转载 Socket I/O 模型 学习
我们为什么要使用Socket I/O模型呢?还得从Socket的阻塞和非阻塞说起。在网上看过一篇讲解I/O模型的文章,它举过一个例子觉得挺好,那就是收信的例子。比如:老周在等待他女儿从美国寄过来的信件,老周住三楼,信箱在一楼。有以下几种情况:第一:老周一直守在信箱旁边,直到收到信件为止。这样太费精力。这就好比是阻塞套接字。第二:老周到信箱那里看一下,发现还没有来,就
2013-10-03 20:28:59 754
原创 栈展开概念
说当一个函数里面抛出异常时,如果抛出的异常没有在该函数里面找到相应的catch处理模块,这个时候在抛出异常前的那些局部变量就开始销毁,最后整个函数调用的栈帧也被销毁。异常就到了调用该函数的去找catch处理模块,如果也没有 那么一样要销毁该调用函数的栈帧。就这样一层层的往外推。这样的一个过程就是栈展开了。当执行这个函数的时候,系统会开辟一个栈帧给它,如果这个函数执行的时候出现异常,那么
2013-10-03 20:06:32 1539
原创 让程序跳转到某绝对地址执行
先看如下程序:#include using namespace std;void fun(){cout}int main(){ typedef void(*func)(void); func Fun = fun; (*fun)();//1 (*((void (*)( ))Fun )) ( );//2 return 0;
2013-10-03 19:28:34 4373
转载 c++对字符串的默认==比较
int main(){ char str1[]="xwl"; char str2[]="xwl"; const char str3[]="xwl"; const char str4[]="xwl"; const char *str5="xwl"; const char *str6="xwl"; cout<<boolalpha<<(str1==str2)<<e
2013-10-03 19:10:59 967
有限状态机FSM
2015-05-18
unreal script调试利器 nfringe
2013-04-03
Visual C++权威剖析
2009-11-25
常用算法 C语言描述(第三版)+源代码.rar
2009-10-28
数据结构1800题,对考研者非常的有益,望各位能考上满意学府
2009-10-13
大学计算机网络课件。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
2008-10-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人