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

恳求帅哥美女程序猿(媛),攻城狮们帮我看看我这个数组选择排序

只看楼主收藏回复

这张图是我的代码思路,我想的是
if (arr[x]>arr[y])
{
int z = x;
x = y;
y = z;
}
System.out.print(arr[x]+" ");
if后面互换数组元素的角标。然后直接把最小角标的数组元素打印出来(从小到大排序)
然后再进入外循环进行下一轮比较,这样一轮一轮打出来
为什么是不可行的呢


IP属地:浙江1楼2016-02-23 18:48回复
    这是源代码
    //5,1,6,4,2,8,9
    class ArrayTest2
    {
    public static void main(String[] args)
    {
    int[] arr={5,1,6,4,2,8,9};
    px(arr);
    }
    public static void px(int[] arr)
    {
    for(int x=0;x<arr.length;x++)
    {
    for(int y=x+1;y<arr.length;y++)
    {
    if (arr[x]>arr[y])
    {
    int z = x;
    x = y;
    y = z;
    }
    System.out.print(arr[x]+" ");
    }
    }
    }
    }
    渣渣刚自学java4天,什么都不懂,求大神指导


    IP属地:浙江3楼2016-02-23 18:50
    回复
      循环的标准是角标,你交换的也是角标。。。


      IP属地:浙江来自Android客户端4楼2016-02-23 19:32
      收起回复