为什么这个只是排序了一次?代码在for循环是怎么运行的? 20
intdata[]=newint[]{8,9,0,2,3,5,10,7,6,1};inttemp;for(inty=0;y<data.length-1;y++){if(d...
int data[]=new int[] {8,9,0,2,3,5,10,7,6,1};
int temp;
for(int y=0;y<data.length-1;y++) {
if(data[y]>data[y+1]) { //前大于后,交换
temp=data[y+1];
data[y+1]=data[y];
data[y]=temp;
}
} 展开
int temp;
for(int y=0;y<data.length-1;y++) {
if(data[y]>data[y+1]) { //前大于后,交换
temp=data[y+1];
data[y+1]=data[y];
data[y]=temp;
}
} 展开
展开全部
这是一重循环,做了data.length次循环,这一轮循环完,接着进行第二轮的话,就要再写一轮循环。
for(int y=0;y<data.length-1;y++) {
for(int z=0;z<data.length-i-1;z++){
if(data[y]>data[z]) { //前大于后,交换
temp=data[y];
data[y]=data[z];
data[z]=temp;
}
}
}
for(int y=0;y<data.length-1;y++) {
for(int z=0;z<data.length-i-1;z++){
if(data[y]>data[z]) { //前大于后,交换
temp=data[y];
data[y]=data[z];
data[z]=temp;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个for循环只是循环了一遍,左右只能进行一次交换,就比如一个简单的例子{4,2,3,1} 第一次是4和2交换变成了{2,4,3,1},然后就是4和3比较,交换变成了{2,3,4,1}再然后就是4和1比较,交换变成了{2,3,1,4}循环结束,但是1只是交换了一次。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询