黑马程序员技术交流社区
标题:
关于选择排序问题,求解决
[打印本页]
作者:
井瑞涛
时间:
2013-3-4 12:50
标题:
关于选择排序问题,求解决
蒙圈了,求大神解决,
class Qq
{
public static void a(int[] bb)
{
for (int x=0;x<bb.length;x++)
{
for (int y=x+1;y<bb.length-x;y++)
{
if (bb[x]>bb[y+1])
{
int z=bb[x];
bb[x]=bb[y];
bb[y]=z;
}
}
}
}
public static void main(String[] args)
{
int[] bb={1,2,3,6,4,};
c(bb);
a(bb);
c(bb);
}
public static void c(int[] bb)
{
for (int x=0;x<bb.length;x++)
{
System.out.print(bb[x]+",");
}
}
}
打印完是这个样子的看不懂,大神给点指导
1,2,3,6,4,Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Qq.a(Qq.java:9)
at Qq.main(Qq.java:22)
作者:
袁术森
时间:
2013-3-4 13:02
你的数组创建的不对,.ArrayIndexOutOfBoundsException: 5该提示是说角标越界异常,应该是这int[]bb={1,2,3,4,6};6后面是没有逗号的哦
作者:
张子凯
时间:
2013-3-4 13:13
本帖最后由 张子凯 于 2013-3-4 13:22 编辑
数组下标越界。你的代码public static void a(int[] bb){}排序拍不了序,改正如下:
public static void a(int[] bb) {
for (int x=0;x<bb.length-1;x++)
{
for (int y=x+1;y<bb.length;y++) //你这句话有问题,选择排序x=0到bb.length-2与y=1到bb.length-1分别比较
{
if (bb[x]>bb[y])
{
int z=bb[x];
bb[x]=bb[y];
bb[y]=z;
}
}
}
}
作者:
花伟昌
时间:
2013-3-4 13:27
你的代码中有几处错误,下面是我改过的,你比较一下。
class Demo
{
public static void a(int[] bb)
{
for (int x=0;x<bb.length-1;x++)
{
for (int y=x+1;y<bb.length;y++)
{
if (bb[x]>bb[y])
{
int z=bb[x];
bb[x]=bb[y];
bb[y]=z;
}
}
}
}
public static void main(String[] args)
{
int[] bb={1,2,3,6,4};
a(bb);
c(bb);
}
public static void c(int[] bb)
{
for (int x=0;x<bb.length;x++)
{
System.out.print(bb[x]+",");
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2