java吧 关注:1,233,319贴子:12,698,593
  • 4回复贴,共1

刚自学java,求大神帮我看一道题。

只看楼主收藏回复

class ArryDemo12
{
public static void main(String[] args)
{
int [] arr={34,19,11,109,1,56};
paiXu(arr);
for (int x=0; x<=arr.length-1 ; x++)
{
System.out.println(arr[x]);
}
}
public static void paiXu(int [] arr)
{
for (int x=0; x<arr.length-1 ; x++)
{
int num=arr[x];
int index=x;
for (int y=x+1; y<arr.length; y++)
{
if (num>arr[y])
{
num=arr[y];
index=y;
}
}
int temp = num;
num = arr[x];
arr[x] = temp;
}
}
}
为什么结果是
1
1
1
1
1
56


IP属地:安徽1楼2016-07-29 19:49回复
    表示看不懂


    IP属地:广东来自Android客户端2楼2016-07-29 22:40
    回复
      设置断点调试观察值吧 你方法把数组的值改变了


      IP属地:河南来自Android客户端5楼2016-07-29 23:03
      回复
        这个嵌套for循环有问题啊,你第一层循环里到底想干什么我完全没理解,你把值和角标存到两个变量里也是没有必要的,你直接嵌套两层循环然后在里面一层直接用x和y作为元素的角标比较大小然后置换位置就可以了,这样就做到了排序的功能,你这样写太混乱,难得调试,直接重写吧


        IP属地:湖北来自Android客户端6楼2016-07-29 23:12
        回复