- package test.test;
- class Sort
- {
- public static void main(String[] args)
- {
- int[] arr={12,5,3,89,30,2,31};
- printArray(arr); //排序前
- selectSort(arr);
- printArray(arr); //排序后
-
- }
- public static void selectSort(int[] arr)
- {
- for(int x=0;x<arr.length-1;x++)
- {
- for(int y=x+1;y<arr.length;y++)
- {
- if(arr[x]>arr[y])
- {
- //因为要操作的是数组中的角标的位置。所以这里应该有三个参数,一个是数组,还有两个代表角标位
- exchange(arr, x, y);
- }
- /*
- 为什么上面写 int temp=arr[x];
- arr[x]=arr[y];
- arr[y]=temp;
- 可以排序,而调用exchange就不会排序,而是按原来的顺序打印出来呢?
-
- */
-
- }
- }
- }
-
- 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]+"]");
- }
- }
- public static void exchange(int[] arr, int x, int y)
- {
-
-
- {
- int temp=arr[x];
- arr[x]=arr[y];
- arr[y]=temp;
- }
- }
-
- }
复制代码 |