自然数排序

J2EE 码拜 10年前 (2015-04-18) 1264次浏览 0个评论
 

仿照位排序做的
但是java中没有二进制的数据类型  (我查的是没有)
那么这样的话  byte 还是 boolean 哪个划算  求详解

代码如下:
public class WeiPaiXu {
public static void main(String[] args){
int[] data= {4,9,5,2,22,33,5,6,1,3,5,2};
int max = data[0] ;
int min = data[0];
for(int i  = 0 ; i < data.length; i++){
if(max < data[i]){
max = data[i];
}
if(min > data[i]){
min = data[i];
}
}
System.out.println(max);
System.out.println(min);

boolean[] a = new boolean[max];
for(int i=0 ; i<data.length ; i++){
if(a[data[i]] == false){
a[data[i]] = true;
}else if(a[data[i]] == true){
System.out.println(data[i] + “此数字重复出现”);
}
}

System.out.println(“去除重复后的排序结果”);

for(int i=0 ; i<a.length; i++){
if(a[i] == true){
System.out.println(i);
}
}
}
}

但是一直报错:java.lang.ArrayIndexOutOfBoundsException

自然数排序
20分
你这种排序有个先决条件:数组里的任意元素x,要小于数组的长度length
自然数排序
改成这样
boolean[] a = new boolean[max+1];

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明自然数排序
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!