位图排序
来源:互联网 发布:mac 10.12懒人版下载 编辑:程序博客网 时间:2024/05/22 17:42
#include "stdafx.h"#include<iostream>#include<bitset>using namespace std;namespace chapter1{/*位图排序,可以看做是一种哈希表要求数据不能重复(哈希表的键不能重复)xc 同时数据的最大范围确定,用来位数的最大值缺点:空间浪费,在数据很少,但是个别数据很大的时候会有很多的空位只能处理整数*/const int MAX_NUM = 64;int bitMapArray[MAX_NUM]; void setBit(int n){bitMapArray[n / 32] |= ((unsigned)1 << (n % 32));} void resetBit(int n){bitMapArray[n / 32] &= ~(1 << (n % 32));} bool isBitSet(int n){return bitMapArray[n / 32] & (1 << (n % 32));} void sort(int data[],int length) { for (int i = 0; i < length; i++) setBit(data[i]); for (int i = 0; i < MAX_NUM;i++) if (isBitSet(i)) cout << i << ' '; cout << endl; }//利用C++ stl库的bitset实现bitset<MAX_NUM>bitMap;void sortUsingBitset(int data[], int length){for (int i = 0; i < length; i++)bitMap.set(data[i]);for (int i = 0; i < MAX_NUM;i++)if (bitMap.test(i))cout << i << ' ';cout << endl;}void test(){int a[] = { 34, 21, 57, 1, 3, 9 };//测试数据少,空间利用率很低sort(a, 6);sortUsingBitset(a, 6);}}int _tmain(int argc, _TCHAR* argv[]){chapter1::test();return 0;}
0 0
- 位图排序
- 位图排序
- 位图排序
- 位图排序
- 位图排序
- 位图排序
- 位图排序
- 位图排序
- 位图排序
- 位图排序
- 位图排序
- 位图排序
- 位图排序
- 位图排序
- 位图排序
- 位图排序
- 位图排序
- 位图排序
- Tuscany的一些概念
- Spring中Ordered接口简介
- iOS计算字符串高度
- springMVC使用HandlerMethodArgumentResolver 自定义解析器实现请求参数绑定方法参数
- 设置文件属性
- 位图排序
- 自己的快速链接(动态更新)
- VS2008的C++TR1库已经支持正则表达式
- 浅谈随机数发生器(C语言)
- 对字符串不变模式的理解
- 如何使用cmd来编译和运行java文件
- 【回答】:Microsoft .NET Framework 各个版本之间的关系?如何安装2.0,3.0,4.0?向下兼容?
- exec函数的实现猜想
- day93(只能多敲了)