| class PaiXuDemo {
 public static void main(String[] args)
 {
 int[] arr={5,8,9,6,5,2,1};
 printArray(arr);
 getSelectSort(arr);
 //Array.sort(arr);
 printArray(arr);
 }
 /*
 最快的排序方法是:希尔排序
 Array.sort(arr) 这个是Java自带的排序方法,
 正式的程序开发时是用这个方法为数组排序。
 Select :选择
 Sort :排序
 SelectSort:选择排序法
 步骤:
 1.定义一个嵌套循环
 2.
 3.
 4.
 
 
 选择排序
 内循环结束一次,最值出现在头角标的位置上
 按升序排序if(arr[x]>arr[y])
 按降序排序if(arr[x]<arr[y])
 其他代码不用改变
 */
 
 public static void getSelectSort(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])
 {
 /*int temp = arr[x];
 arr[x]=arr[y];
 arr[y]=temp; */
 swap(arr,x,y); //上面的三句话可以红这个swap函数替换掉
 }
 }
 }
 }
 /*
 发现无论什么排序,都需要对满足条件的函数进行位置置换
 所以可以把进行位置置换的代码提取出来,单独封装成一个函数。
 */
 public static void swap(int[] arr,int  a,int b)
 {
 int temp = arr[a];
 arr[a] = arr[b];
 arr[b] = temp;
 }
 public static void printArray(int[] arra)
 {
 for(int x=0;x<arra.length;x++)
 {
 if(x!=arra.length-1)
 System.out.print(arra[x]+",");
 else
 System.out.println(arra[x]);
 }
 }
 }
 |