海量信息处理之位图的应用
来源:互联网 发布:网络渗透的目的 编辑:程序博客网 时间:2024/05/17 07:28
代码已经经过测试,后续待更新。
CPP文件如下:
#include "largerDataProcess_bitmap.h"// 位图的测试代码void largerDataProcess_bitmapCppTest(){bitmapOneTest();return;}int bitmapOne::bitmap_init( int size, int start ){g_size = size/8 + 1;g_base = start;g_bitmap = new char[g_size];if( g_bitmap == NULL )return 0;memset( g_bitmap, 0x0, g_size );return 1;}int bitmapOne::bitmap_set( int index ){cout<<"index = "<<index<<" ";int quo = (index - g_base)/8;int remainder = (index - g_base )%8;unsigned char x = (0x1 << remainder );if( quo > g_size )return 0;cout<<"quo = "<<quo<<endl;g_bitmap[quo] |= x;return 1;}int bitmapOne::bitmap_get( int i ){int quo = (i)/8;int remainder = (i)%8;unsigned char x = (0x1 << remainder);unsigned char res;if( quo > g_size )return -1;res = g_bitmap[quo] & x;return res > 0 ? 1: 0;}int bitmapOne::bitmap_data( int index ){return (index+g_base);}int bitmapOne::bitmap_free(){delete[] g_bitmap;return 0;}bitmapOne::bitmapOne():g_bitmap(NULL),g_size(0),g_base(0){ }// 第一个位图bitmapOne的测试int bitmapOneTest(){bitmapOne bmOne;vector<int> v(100,0);for( vector<int>::iterator vi= v.begin() ; vi != v.end(); vi++ )v[vi-v.begin()] = rand()%100;int i;bmOne.bitmap_init(100,0);for( i = 0; i< 20; i++ ){bmOne.bitmap_set(v[i]);}for( i = 0; i<100; i++ ){if( bmOne.bitmap_get(i) > 0 )cout<< bmOne.bitmap_data(i) << " ";}cout<<endl;bmOne.bitmap_free();return 0;}
头文件如下:
/*参考网页如下: *http://blog.csdn.net/gugemichael/article/details/8013150 大数据过滤及判断算法 -- Bitmap / Bloomfilter *http://blog.csdn.net/hguisu/article/details/7880288海量数据处理算法—Bit-Map *http://blog.csdn.net/net_assassin/article/details/9340597 bitmap与桶方式对1000万数据进行排序 *http://blog.csdn.net/qibaoyuan/article/details/5914458 位图排序 *http://blog.csdn.net/cike211/article/details/9990365 相关应用 */#ifndef LARGERDATAPROCESS_BITMAP_H#define LARGERDATAPROCESS_BITMAP_H#include "Common.h"void largerDataProcess_bitmapCppTest();class bitmapOne{private:char *g_bitmap ;int g_size;int g_base;public:int bitmap_init( int size, int start );int bitmap_set( int index );int bitmap_get( int i );int bitmap_data( int index );int bitmap_free();bitmapOne();};int bitmapOneTest();#endif
0 0
- 海量信息处理之位图的应用
- 位图的应用之海量数据查找
- 海量数据---位图法的应用
- 海量数量处理之位图
- 《海量数据库解决方案》之位图索引的结构和特征
- day24之位图的实现和位图的应用
- 海量数据常用技巧之位图法
- 数学之美 系列七 -- 信息论在信息处理中的应用
- 数学之美 系列七 -- 信息论在信息处理中的应用
- 数学之美 系列七 -- 信息论在信息处理中的应用
- 数学之美 系列七 -- 信息论在信息处理中的应用
- 数学之美 系列七 -- 信息论在信息处理中的应用
- 数学之美 系列七 -- 信息论在信息处理中的应用
- 数学之美 系列七 -- 信息论在信息处理中的应用
- 数学之美 系列七 信息论在信息处理中的应用
- 数学之美 系列七 -- 信息论在信息处理中的应用
- 数学之美 系列七 -- 信息论在信息处理中的应用
- 【数学之美 系列七】信息论在信息处理中的应用
- spring session入门
- UML的开始
- 最长平台问题 C实现
- 按字母顺序以及区间排序汉字
- Android 导入工程出现Unable to resolve target 'android-xx'错误
- 海量信息处理之位图的应用
- LeetCode[Array]: Majority Element
- AndroidWear官方文档总结04 - 创建Android Wear 项目
- Android 4.4.4 开机铃声相关知识
- hibernate零配置表自身(OneToMany)关联
- xCode 安装Mobile Device Framework出错的问题的解决方法
- Android布局文件layout.xml的属性详解
- HTML默认IE文档模式代码
- C/C++ 练习题及答案