1.选择排序

 

package src;

public class SelectSort {
    public static void swap1(int[] arr,int a,int b){
        int temp=arr[a];
        arr[a]=arr[b];
        arr[b]=temp;
    }
    //因为是值拷贝,外面的数无法更新
//    public static void swap2(int a,int b){
//        int temp=a;
//        a=b;
//        b=temp;
//    }
    public static void swap3(int[] arr,int i ,int j){
        if(i==j)return;//想同地址异或,数值会被变成0
        arr[i]=arr[i]^arr[j];
        arr[j]=arr[i]^arr[j];
        arr[i]=arr[i]^arr[j];
    }
    public static void swap4(int[] arr,int i,int j){
        if(i==j)return;
        arr[i]=arr[i]+arr[j];
        arr[j]=arr[i]-arr[j];
        arr[i]=arr[i]-arr[j];
    }
    public static void Sort(int[] arr){

        for (int i=0;i<arr.length;i++){
            int min_index=i;
            for (int j=i;j<arr.length;j++){
                if(arr[min_index]>arr[j])min_index=j;
            }
//            swap1(arr,i,min_index);
//            swap2(arr[i],arr[min_index]);
//            swap3(arr,i,min_index);
            swap4(arr,i,min_index);
        }
    }
    public static void Print(int[] arr){
        for ( int a:arr) {
            System.out.println(a);
        }
    }

    public static void main(String[] args) {
        int[] arr=new int[]{5,8,6,7,2,4};
        Print(arr);
        System.out.println("******************");
        Sort(arr);
        Print(arr);
    }
}

  

时间复杂度O(n2)
posted @ 2024-03-28 09:46  dmfsimle  阅读(2)  评论(0)    收藏  举报