选择排序的java实现

选择排序的实现原理:从指定的n条记录中获取最大值或者最小值放在最开始位置,然后从第二个元素继续遍历取出剩余元素的最大值或者最小值,直到元素个数为0。

选择排序的时间复杂性分析:O(n2),排序时数据交换的次数比冒泡排序要少,所以n值较小时,选择排序比冒泡排序快。

选择排序的算法稳定性:选择排序会交换相等元素的位置,不是稳定性算法。

选择排序的java代码实现:

public class Selection{

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

    }

    public static boolean greater(Comparable a, Comparable b){
        return a.compareTo(b) > 0;
    }

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

    public static void main(String[] args) {
        Integer[] arr = {1,2,5,4,3,10,2,4,7,8,9};
        Selection.selectSort(arr);
        System.out.println(Arrays.toString(arr));
    }

}

 

posted @ 2021-07-11 22:46  风缱云流  阅读(59)  评论(0编辑  收藏  举报