排序算法-----选择排序

public class SelectSort {
    /**
     * 选择排序
     * 它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 
     * 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。
     * O(n2)的时间复杂度
     * @param arr
     */
    public static void selectSort(int[] arr) {

        int minIndex = -1 ;
        int temp = 0;
        if (arr==null||arr.length==0) {
            System.out.println("数组为空,或者为空数组");
            return ;
        }
        for(int i=0;i<arr.length-1;i++) {
            minIndex = i;
            for(int j=i+1;j<arr.length;j++) {
                //找到最小值的索引
                if(arr[minIndex]>arr[j]) {
                    minIndex = j ;
                }
            }
            //交换两元素
            temp = arr[i];
            arr[i] = arr[minIndex];
            arr[minIndex] = temp ;

        }
    }

    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5,6,6,12,3,4,5,6,5,4,32,1};
        selectSort(arr);
        for (int i : arr) {
            System.out.println(i);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42061676/article/details/81092934