微科社区,轻松开发从此开始! 请登陆 免费注册

微科社区

当前位置:首页 > Java平台 > J2SE >

数组进行冒泡排序后 里面的元素再输出的时候全

时间:2014-04-11 20:21  浏览:努力统计中...
publicclasstest1_1{ publicstaticvoidmain(String[]args){ inti=0,j=0,t=0,n; inttask[]={0,30,155,1,30,80,300,170,40,99,80}; n=task.length; int[]system_task=newint[n+1]; int[]user_task=newint[n+1]; //inttask[]={0,30,155,80}; scheduler(task,n,sys
public class test1_1 {


public static void main(String[] args) {
int i = 0, j = 0, t = 0, n;
int task[] = {0,30,155,1,30,80,300,170,40,99, 80};
n = task.length;
int[]system_task =new int[n+1];
int[] user_task =new int[n+1];

// int task[] = {0,30,155,80};

scheduler(task, n, system_task, user_task);


}

public static void scheduler(int[] task,int n,int[] system_task,int[]user_task){
             //将数组task中的数按照范围的要求放在两个数组里面。
int m = 0;
int k = 0;
for(int i=0;i<n;i++){
if(task[i]<50){                                 
system_task[m++] = task[i];
}else if(task[i]>=50&&task[i]<=255){
user_task[k++] = task[i];
}else {
continue;
}
}
System.out.println(m+"&"+k);
for(int i=0;i<m;i++){
System.out.print(system_task[i]+" ");//对数组进行处理完成后输出仍然是对的,但是当用冒泡完成后
                                                                                        //再输出就不对了。已经检查冒泡程序了,是对的。

}
System.out.println();
for(int i=0;i<k;i++){
System.out.print(user_task[i]+" ");
}
System.out.println();
int[]system_task1 = bubblesort(system_task);
int[] user_task1 = bubblesort(user_task);
for(int i=0;i<m;i++){
System.out.print(system_task1[i]+" ");
}
System.out.println();
for(int i=0;i<k;i++){
System.out.print(user_task1[i]+" ");
}
   //出问题了。
System.out.println();

/*for(int i=0;i<n;i++){
for(int i1=0;i1<m;i1++){
if(system_task[i1]==task[i]){
system_task[i1]=i;
}
}
}

for(int i=0;i<n;i++){
for(int i1=0;i1<k;i1++){
if(user_task[i1]==task[i]){
user_task[i1]=i;
}
}
}
system_task[m++]=-1;
user_task[k++]=-1;

for(int i=0;i<m;i++){
System.out.print(system_task[i]+" ");
}
System.out.println();
for(int i=0;i<k;i++){
System.out.print(user_task[i]+" ");
}*/
}

public static int[] bubblesort(int[] a){
for(int i=0;i<a.length-1;i++){
for(int j=0;j<a.length-i-1;j++){
if(a[j]>a[j+1]){
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
return a;
}

}


写这么多。。调试看看呢

你好哈 觉得调试起来方便 就都贴上了 

在调用bubblesort冒泡程序之前的输出是正确的,调用完成后再输出就全部为0了。
检查过冒泡程序,是正确的。也就是在另外的程序中运行时 是能够正确的输出的。


你的冒泡是没错,可是你调用的是scheduler,不是bubblesort啊。。检查一下代码。没仔细看。

我还是无聊的跑了一遍,看看你变量m和k的大小,以及数组的大小,你就明白了。。。。。你冒泡把初始为0 的元素都排前面去,而数组大小是12,m是5,k也是5。。。。

我也无聊的跑了一下。。

for (int i = 0; i < n; i++) {  //n=11
if (task[i] < 50) {
system_task[m++] = task[i];
} else if (task[i] >= 50 && task[i] <= 255) {
user_task[k++] = task[i];
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线------