位运算和其对程序的优化.pptVIP

  • 14
  • 0
  • 约2.98千字
  • 约 25页
  • 2017-04-20 发布于北京
  • 举报
程序中所有的数据在计算机内存中都是以二进制的形式储存的。位运算,本质上就是直接对整数在内存中的二进制位进行运算,同时,数的各个二进制位互不影响。由于位运算直接对内存数据进行操作,不需要转换成十进制,因此处理速度非常快,在信息学竞赛中往往可以优化理论时间复杂度的系数。另外,位运算还有很多特殊的技巧,能够帮助我们简化代码、美化程序等等。本文就结合自己的学习和应用经验,介绍一些位运算及其对程序的优化方法。;X;由上面的介绍,我们不难发现这些位运算的基本用途:;not and , shl ,shr or,xor;例1、一个文件中有9亿个不重复的9位整数,现在要求对这个文件进行排序(当然时间可以不止1秒,但要求出可行解,即在可以接受的时间和空间范围内)。 ;mod版本:for i:=1 to time do x:=y mod base; and 版本:for i:=1 to time do x:=y and (1 shl 20-1); ;运算要求;循环队列比较方便的实现可以用一个头指针head,一个尾指针tail,每次取出来的是head mod base。这里不妨把base设置为2的整数次幂-1,然后用and来取模。 ;功能;例2. 尼克在一家养猪场工作,这家养猪场共有M间锁起来的猪舍,由于猪舍的钥匙都给了客户,所以尼克没有办法打开这些猪舍,客户们从早上开始

文档评论(0)

1亿VIP精品文档

相关文档