BitSort (比特排序)

BitSort (比特排序) 适用于非负无重复数组的排序,特别是当数组元素个数较多的时候,该排序法无论在时间还是空间上都达到了很好的效果。用很小的空间实现大量数据的排序! 算法代码:/* 算法思想: 先将待排序非负无重复数组的各个元素映射到一段内存空间的各个bit上 (若某个bit上存在相应的元素,* 则该bit置为1,否则置为0),再从低地址到高地址遍历这段内存的所有值为
摘要由CSDN通过智能技术生成

BitSort (比特排序) 适用于非负无重复数组的排序,特别是当数组元素个数较多的时候,该排序法无论在时间还是空间上都达到了很好的效果。用很小的空间实现大量数据的排序!

 

算法代码:

/* 算法思想: 先将待排序非负无重复数组的各个元素映射到一段内存空间的各个bit上 (若某个bit上存在相应的元素,
*			  则该bit置为1,否则置为0),再从低地址到高地址遍历这段内存的所有值为"1"的bit,并把它们转换成
*			  相应的数值,即是待排序数组的升序序列。
*
*  BitSort(比特排序) --> 用很小的空间实现大量整数的排序!
*/

#include <iostream>
using namespace std;

typedef unsigned int uint;
const int UINTLEN = 32;
const uint FlagSet[UINTLEN] = {
	0x00000001,0x00000002,0x00000004,0x00000008,0x00000010,0x00000020,0x00000040,0x00000080,
	0x00000100,0x00000200,0x00000400,0x00000800,0x00001000,0x00002000,0x00004000,0x00008000,
	0x00010000,0x00020000,0x00040000,0x00080000,0x00100000,0x00200000,0x00400000,0x00800000,
	0x01000000,0x02000000,0x04000000,0x08000000,0x10000000,0x20000000,0x40000000,0x80000000
};

/* "inputArr" --> 待排序非负无重
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值