黑马程序员技术交流社区

标题: 当我用选择排序时发生这样的事!有意思 [打印本页]

作者: skyfly    时间: 2014-6-7 13:35
标题: 当我用选择排序时发生这样的事!有意思
本帖最后由 skyfly 于 2014-6-7 14:00 编辑

代码如下:   排序是没有错的,全排好了,但是很奇怪地最后一个数没有显示出来,为何呢。
public class demo0 {

        public static void main(String[] args) {
        int arr[]={1,8,3,4,9,10,11,4};
        
         selectSort(arr);
        

        }
   
        public static void selectSort(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 temp=arr[x];
                                        arr[x]=arr[y];
                                        arr[y]=temp;
                                       
                                       
                                }
                        
                        System.out.print(arr[x]+",");
                }
               
               
        }
}
执行后结果是:1,3,4,4,8,9,10,  
然后如何 用迭代器把数组中的数读出来  ?

作者: skyfly    时间: 2014-6-7 13:47
x<arr.length-1 猜对  我发现排序十分重要
作者: 532989476    时间: 2014-6-7 17:31
没有啊,运行结果本来就是1,3,4,4,8,9,10,11
作者: 来自沙沙的我    时间: 2014-6-7 17:51
skyfly 发表于 2014-6-7 13:47
x

有点没有搞懂你的意思。运行结果没有错啊。

这个里面x<arr.length-1,是x运行到倒数第二位时,这是最后一位可以不变。
而你这里写x<arr.length是因为要将所有数组打印出来。
而x<arr.length之所以能够继续判定是因为这个时候y已经等于arr.length所以不比较直接打印。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2