
 代码一定要自己手敲理解
public class _004 {
    //选择排序,冒泡排序,插入排序
    //交换
    public static void swap(int[] arr,int i ,int j){
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
    //选择排序
    public static void selectSort(int[] arr){
        if(arr == null || arr.length < 2){//数组中没有值,或者只有一个值,就不用排序,直接退出
            return ;
        }
        for(int i = 0;i< arr.length;i++){
            int minIndex = i;//因为你后面的最小值要和当前的交换,设有就得有一个数记住最小值的索引,方便后面交换
            for(int j = i+1;j < arr.length;j++){//j是i的下一个数,一直往后++到数组最后一个数
                if(arr[j] < arr[minIndex]){
                    minIndex = j;
                }
            }//这个循环结束以后,minIndex就已经指向数组中最小数的索引值。接下来把arr[i] 与minIndex这个最小索引值对应的数交换
            swap(arr,i,minIndex);
        }
        for(int i:arr){
            System.out.print(i);
        }
        return ;
    }
    public static void main(String[] args) {
        int[] arr = {1,5,3,2,4};
        int[] arr2 = {0};
        int[] arr3 = {};
        selectSort(arr);
        selectSort(arr2);
        selectSort(arr3);
    }
}




















