Java基础算法-排序-选择排序

简单选择排序:

原理

简单选择排序,把数组分为有序区间与无序区间, 开始所有的数都属于无序区间,然后在无序区间里面找出min/max,然后插入有序区间,挨个轮换下去

时间复杂度

时间复杂度 平均 : O(n^2) 最坏 O(n^2)

代码实现

···java

package cn.zju.algorithms.sort;

public class SelectSort {

public static void main(String[] args) {
    int[] arr = {3 , 2 , 1, 10 , 8 , 9 , 1};
    selectSort(arr);
    for(int num : arr){
        System.out.print(num + " ");
    }
}

public static void selectSort(int[] arr){
    for(int i = 0 ; i < arr.length-1 ; i++){
        int minIndex = i;
        for( int j = i + 1;j <arr.length ; j++){
            if(arr[minIndex] > arr[j])
                minIndex = j;
        }
        swap(arr,i, minIndex);
    }

}

public static void swap(int[] arr, int i , int j){
    int temp = 0;
    temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp; 
}

}

···