求大神指点!拜谢!冒泡循环我是按照书上教的一步没有差的写的代码,可执行后没有任何变化

java_mengxing 2020-04-23 11:48:31

package hellojava;

public class paixu {
public static void main(String[] args) {//冒泡排序
int a[]= {1,32,23,58,3};
for(int i=1;i<a.length;i++) { //i=1循環次數減少一次
for(int j=0;j<a.length-i;j++) {
if(a[j]<a[j+1]) {
int b =a[j+1];
a[j+1]=b;
}
}
}
System.out.println("冒泡排序為:");
for(int b:a) {
System.out.print(b+" ");
}




}


}
求各位大神指点一下这个代码哪里不对,拜谢!
...全文
80 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
java_mengxing 2020-04-24
  • 打赏
  • 举报
回复
引用 2 楼 qq_39936465 的回复:
[quote=引用 楼主 java_mengxing 的回复:]

求各位大神指点一下这个代码哪里不对,拜谢!


你应该看漏了吧

int b=a[j+1];
a[j+1]=b;

这个就根本没交换啊![/quote]

少写了 a[j]=a[j+1];
java_mengxing 2020-04-24
  • 打赏
  • 举报
回复
引用 1 楼 qybao 的回复:

if(a[j]<a[j+1]) {
int b=a[j+1];
a[j+1]=b;
}
改成
if(a[j]<a[j+1]) {//交换a[j]和a[j+1]
int b=a[j];
a[j]=a[j+1];
a[j+1]=b;
}


感谢大神问题已经解决
qq_39936465 2020-04-24
  • 打赏
  • 举报
回复
引用 楼主 java_mengxing 的回复:
求各位大神指点一下这个代码哪里不对,拜谢!
你应该看漏了吧 int b=a[j+1]; a[j+1]=b; 这个就根本没交换啊!
qybao 2020-04-24
  • 打赏
  • 举报
回复
把 if(a[j]<a[j+1]) { int b=a[j+1]; a[j+1]=b; } 改成 if(a[j]<a[j+1]) {//交换a[j]和a[j+1] int b=a[j]; a[j]=a[j+1]; a[j+1]=b; }

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧