- 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]+"]");
- }
- }
- }
复制代码 |
|