其实这篇,我已经写了好久,只是一直没发。因为里面还有一些问题,我还没有解决。但是我想学习本来就是一个更新的过程,总有一些我们是不懂的。于是我决定还是展示出来。供大家学习和讨论。
问题的引入:例题:有很多个整数,排除其中重复的数。 要求:尽可能的节省空间、
要想解决此问题,重在存储这些整数。我们通过什么样的结构来存储?
问题的解决的构思:创建一个byte数组,其中每一个元素的8位分别对应元素出现的情况、我们用1表示该对应的
数出现了,0表示没有出现。然后我们遍历整个情况,对于标记1的数都取一个。这些数就是排重过后剩下的数。
问题的具体实现:假设整数的个数为n.我们开辟的byte数组的大小为(n/8+1)。n%8这为byte数的第几位数。
我定义一个排重类:
public class PaiChong {
/*
* 通常先执行常量的初始化,然后执行构造方法
*/
byte a[];
public PaiChong(int b){
a=new byte[b/8+1];//开辟这么大的空间
}
/**
*
* @param x 为你输入的数
*/
public void Fuzhi(int x){
int i,j;//分别作为标记
i=x/8;
j=x%8;
byte y=0;
byte r[]=ChangeStr(a[i]);
if(j==0)
r[7]=1;
else
r[j-1]=1;
for(int k=0;k<8;k++){
y*=2;
y+=r[k];
}
a[i]=y;
}
/**
*
* @param y 你传入需要改变的数
* @return 返回字符数组
*/
public byte[] ChangeStr(byte y){
byte[] s=new byte[8];//定义长度为8的字符数组
int t=y;
int w=0;
int i=0;
for(;i<7;i++){
if(t<=1){
s[7-i]=(byte) t;
break;//跳出循环
}
int h=t;
t=(t/2);
w=h-t*2;//记录余数
s[7-i]=(byte) w;
}
for(int k=i+1;k<8;k++){
s[7-k]=0;
}
return s;
}
public void SystemByte(){
for(int i=0;i<a.length;i++){
System.out.print(a[i]+",");
}
}
}
在这个类中,Fuzhi这个方法:将待排重的数,进行判断。并修改,对应位上的值。ChangeStr这个方法:
将byte数转化为一个byte数组,再对byte数组中元素进行操作。以上的代码并没有实现我预期的目标。
代码中出现一些问题:我们改动这个数,可能会超出byte的范围。从而它自动将其转化为负数。还有对于
负byte数转化为二进制的方法。
还有值得考虑的地方,这样的做法是否减少复杂度?如何通过移位对byte的8位数进行操作?
以及将byte数组变成int数组又会怎么样?
分享到:
相关推荐
处理bitmap内存溢出问题
总结了Bitmap结构在典型网络处理算法中的各种应用,给出了Bitmap结构的数学模型,并通过实例分析了Bitmap结构的优势和不足。Bitmap技术是一种能有效改善网络处理算法存储空间性能的通用技术,并给未来高性能网络处理...
Bitmap 结构在高性能网络算法设计中的应用
软件开发网在此之前给大家介绍过图片加载框架Glide的基本用法介绍,大家可以先参考一下,本篇内容更加深入的分析了Glide获取图片Path、Bitmap用法,以及实现的代码分析。 1. 获取Bitmap: 1)在图片下载缓存好之后...
Android上解析24位深度Bitmap文件示例
改用原始图像数据流回调函数RegisterImageStreamCallback进行抓图 但回调函数帧为YUV420格式 需要转成Bitmap才用用于显示及本地查看 在网上找了好多都是基于R Y+1 4075 V 128 G Y 0 3455 U 128 – 0 7169 V 128 B Y+...
3-8+BitMap在大数据精准营销中的应用
android bitmap outofMemory 用来解决android中常见的bitmap outOfMemory
游戏初学者能够用上的一些BITMAP资源
Halcon_Bitmap转换方法 写的文档 开发笔记
机器视觉技术必备,从位图到halcon图像,bitmap图像转为halcon图像,bitmap to Hobject
C#语言下,官方好像没有提供直接的方式把Bitmap转为Mat,但是可以使用我的这个方式转变格式
3个bitmap文件,用于认识bitmap文件格式的本质
可以很好的出来android开发过程中,由bitmap导致的内存溢出的问题。
bitmapFont.zip
加深对bitmap数据结构的理解,bitmap数据位图内存指针数据的长度
赠送jar包:RoaringBitmap-0.7.45.jar; 赠送原API文档:RoaringBitmap-0.7.45-javadoc.jar; 赠送源代码:RoaringBitmap-0.7.45-sources.jar; 赠送Maven依赖信息文件:RoaringBitmap-0.7.45.pom; 包含翻译后的API...
一个在VC中将Bitmap转换为Byte[]的小例子。
主要对于应用NI Vision和C#的,bitmap和Ni图像之间的一个转换(彩色)