黑马程序员技术交流社区
标题:
当我用选择排序时发生这样的事!有意思
[打印本页]
作者:
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