摘要:
位图用每个位的值(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 阅读全文
摘要:
位运算:&与 |或 ~非 ^异或<< 左移,相当与*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)( 阅读全文