性能问题说起
最近相对来说事情不是很多,还有一个性能问题没有解决,现在可以抽空研究下久违的算法,由于问题和bitmap相关,这里先收集些bitmap的资料,待问题解决后再记录
1.先说说逆序bitmap
为什么要先说这个,原因是工作环境中写的公共bitmap函数中bit位放在元素中的位置是倒过来放的
eg.
假设是在btimap中位置2,4为
0000 1010
倒过来放为
0101 0000
所以在使用该函数时需要将元素逆序
这里使用的逆序方法的思想类似分治
首先是临近的奇数位和偶数位进行交换,然后两两成组
然后相邻的两个组进行交换然后再两个组成为有四个bit的组
最后两个组交换,即可。
这种方式的复杂度只有O(lgn)
bitmap相关:
linux内核bitmap介绍
linux内核find_next_bit分析学习bit相关
bit增强(英文)
bit增强翻译
wiki查找第一个bit