黑马程序员技术交流社区
标题:
数组选择排序中遇到的一个小插曲 共勉
[打印本页]
作者:
8047107
时间:
2013-5-12 20:22
标题:
数组选择排序中遇到的一个小插曲 共勉
class selectSort
{
public static void selectSort(int [] arr)
{
for (int x=0;x<arr.length-1;x++ )
{
for (int y=x+1;y<arr.length ;y++ )
/*开始的时候把这里y<arr.length写成了y<arr.length-1
我试了好几次数组不能正常排序。看了又看跟老师讲的一样啊!
为什么我的排序不对?我电脑有问题?
后来咨询了一个计算机朋友,他让我把-1去掉试试,我一试还真可以了!
//x<arr.length-1意思是遍历的时候x不用取到最后一位角标,因为后面没数可以比较了,所以没必要。
//而y=arr.length不用-1是因为y=x+1,如果y也要-1的话,最大值就取不到最后一位角标了。
最后一位始终无法参与排序,所以排序老是不对的。
又跟老师的对照一下,发现还是自己打错了。
太粗心了!抄都抄错!下次不能这样了!
*/
{
if (arr[x]>arr[y])
{
int temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
}
public static void main(String[] args)
{
int []arr={2,1,6,9,8,3};
printArray(arr);//排序前打印
selectSort(arr);
printArray(arr);//排序后打印
}
public static void printArray(int [] arr)
{
System.out.print("[");
for (int x=0;x<arr.length;x++ )
{
if (x!=arr.length-1)
System.out.print(arr[x]+", ");
else
System.out.println(arr[x]+"]");
}
}
}
复制代码
作者:
许庭洲
时间:
2013-5-13 06:58
值得学习ing!
作者:
8047107
时间:
2013-5-13 09:13
许庭洲 发表于 2013-5-13 06:58
值得学习ing!
大神这也需要学啊?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2