小培

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::


算法设计小伎俩1:偶数的判断方法

判断n为偶数,一般的方法: bFlag = (n%2==0);
改进方法:                bFlag = (n&1==0);
改进原理: 偶数的二进制表示中,最后一位肯定是0,所以采用和1相与的为0的方式来判断偶数。
改进点:   位运算比除法运算要快很多。


算法设计小伎俩2:无序无符号数据的二分法,其中一部分中的任何一个数据要比另一部分的数据要大。

一般方法: 遍历一边,找出一个中位数,然后在遍历一边,以中位数为标杆进行分割。
改进方法: 只遍历一边,以遍历的数据的最高位为标杆进行分割,最高位为1的,进入大组,最高位为0的进入小组。
改进点:   虽然这种二分法在准确性上不如一般方法,但是运行效率非常高。在大数据量运算中,能够大幅度提高计算效率。



算法设计小伎俩3:对于不重复无符号数据进行一边遍历排序,并且利用尽可能小的内存空间。
改进方法: 1. 利用位去表示一个数据,各个位的顺序表示数据的排序位置。
           2.利用数据的实际值来定位表示位的位置,设置相应位。
           3.操作都使用位操作。

见编程珠玑第一章的实际问题。

posted on 2010-11-01 19:02  小培  阅读(219)  评论(0)    收藏  举报