编程珠玑阅读笔记之算法小伎俩
时间:2010-11-01 来源:小培
判断n为偶数,一般的方法: bFlag = (n%2==0);
改进方法: bFlag = (n&1==0);
改进原理: 偶数的二进制表示中,最后一位肯定是0,所以采用和1相与的为0的方式来判断偶数。
改进点: 位运算比除法运算要快很多。
算法设计小伎俩2:无序无符号数据的二分法,其中一部分中的任何一个数据要比另一部分的数据要大。
一般方法: 遍历一边,找出一个中位数,然后在遍历一边,以中位数为标杆进行分割。
改进方法: 只遍历一边,以遍历的数据的最高位为标杆进行分割,最高位为1的,进入大组,最高位为0的进入小组。
改进点: 虽然这种二分法在准确性上不如一般方法,但是运行效率非常高。在大数据量运算中,能够大幅度提高计算效率。
算法设计小伎俩3:对于不重复无符号数据进行一边遍历排序,并且利用尽可能小的内存空间。
改进方法: 1. 利用位去表示一个数据,各个位的顺序表示数据的排序位置。
2.利用数据的实际值来定位表示位的位置,设置相应位。
3.操作都使用位操作。
见编程珠玑第一章的实际问题。
相关阅读 更多 +