[求助]我这个冒泡排序写的有什么问题?

samuelson1970 2008-04-11 02:34:14

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

public static void main(String[] args) {
int[] a = {2,3,1,4,5};
bubbleSort(a);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
}

怎么最后的结果变成这个了?不解!
1
1
1
4
5
...全文
67 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
frilly 2008-04-11
  • 打赏
  • 举报
回复
public class ArraySort {
public static int[] bubbleSort(int[] array){
for(int i=0;i<array.length;i++){
for(int j=0;j<array.length-1;j++){
if(array[j]>array[j+1]){
int temp =array[j];
array[j]=array[j+1];
array[j+1]=temp; // 修改
}
}
}
return array;
}

public static void main(String[] args) {
int[] a = {2,3,1,4,5};
bubbleSort(a);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
}


改了下,编译运行没问题了
jayflee 2008-04-11
  • 打赏
  • 举报
回复
array[j+1]=array[j]; 这句应该为 array[j+1]=temp

62,623

社区成员

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

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