黑马程序员技术交流社区
标题:
关于冒泡排序困惑(新手)
[打印本页]
作者:
a2068604
时间:
2015-3-27 23:16
标题:
关于冒泡排序困惑(新手)
public static void maopaopaiXu(int[] arr)
{
for(int x=0; x<arr.length-1; x++)
{
for(int y=0; y<arr.length-x-1; y++)//-x:让每次比较的元素减少。 -1:避免角标越界。
{
if(arr[y]>arr[y+1]);
{
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}
public static void main(String[] args)
{
int[] arr= {5,1,6,4,2,8,9};
//排序前:
dayin(arr);
maopaopaiXu(arr);
//排序后:
dayin(arr);
}
}
为什么打印出来的排序只是循序反过来而没有排序。
作者:
a2068604
时间:
2015-3-27 23:17
我哪里遗漏什么或者打错了那里。
{5,1,6,4,2,8,9};
打印后↓
{9,8,2,4,6,1,5};
而不是应该从小到大排序吗
作者:
liyanghml
时间:
2015-3-27 23:31
if(arr[y]>arr[y+1]); 哥们儿 你加个分号 嘛意思啊
作者:
fantacyleo
时间:
2015-3-27 23:39
if(arr[y]>arr[y+1]);多了个分号
作者:
ym199210
时间:
2015-3-27 23:42
表示看不懂
作者:
a2068604
时间:
2015-3-27 23:44
把 int[] arr= {5,1,6,4,2,8,9};分号去掉也不得
作者:
圣光忏悔
时间:
2015-3-28 00:01
人家说的是你的
if(arr[y]>arr[y+1]); //这里多了一个分号...
{
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
复制代码
作者:
hhh233
时间:
2015-3-28 00:10
多了个分号 然后你是按从大到小的顺序排的吧
作者:
陈捷旋
时间:
2015-3-28 00:12
加了分号程序到那就结束了。后面的就没交换了,所以没排序
作者:
a2068604
时间:
2015-3-28 00:40
解决了。确实是分号问题
作者:
高光天
时间:
2015-3-28 09:44
我都没注意到有分号
作者:
smartisan
时间:
2015-3-28 10:08
恩 我打印出字符来了,看看是怎么回事
作者:
DxxD
时间:
2015-3-28 10:14
忧伤的结果。。。。
作者:
smartisan
时间:
2015-3-28 10:18
倒入import java.util.Arrays;
打印出来的就是正常的了
看来不能使用System.out.println(arr)
System.out.println(Arrays.toString(arr));
作者:
勇闯☀☀黑马
时间:
2015-3-28 11:31
分号的问题
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2