摘要: 位图用每个位的值(0 or 1)来表明一个数是否存在,从而减少了内存使用量,也提高了效率。问题:输入:所输入的是一个文件,至多包含n个正整数,每个正整数都小于n,n=10,000,000.数字不重复,且不相互关联输出:经过排序的整数列表约束:至多1M的可用内存,可用磁盘空间充足。运行时间最多几分钟,最好是10S特点: 1. 数的范围小; 2. 没有重复数字; 3. 数之间不相连;实现:#include<fstream>//FILE #include<ctime> //time const int N = 10000000; //num of records const 阅读全文
posted @ 2010-11-03 22:11 liyuxia713 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 位运算:&与 |或 ~非 ^异或<< 左移,相当与*2>> 右移,正数高位补0,负数由计算机决定>>>右移,正数高位补0,负数亦补0循环左移k次 (x<<k) | (x >> (32-k)),循环右移k次 (x>>k) | (x << (32-k))清零取反要用与,某位置一可用或若要取反和交换,轻轻松松用异或应用:字符改变大小写:原理:小写字符比对应的大写字符在数值上大32, 而32 = 0010 0000=0x20inline char lower(char c){ return (char)( 阅读全文
posted @ 2010-11-03 20:21 liyuxia713 阅读(131) 评论(0) 推荐(0) 编辑