排序算法-选择排序

来源:互联网 发布:网络中立规则 编辑:程序博客网 时间:2024/05/20 15:40
简单选择排序(Simple Selection Sort)就是通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换之
 时间复杂度:
     1) 最好情况:本身有序,需要比较n-1次 时间复杂度为o(n)
     2)最坏情况:逆序情况,需要比较(n-1)+(n-2)+...+2+1=n(n-1)/2 时间复杂度为o(n²)
性能上略优于冒泡排序 减少了交换次数

static void selectionSort(int[] array) {        if (array != null && array.length > 0) {            int i, j,min;            for (i = 0; i < array.length; i++) {                min=i;                for (j = i + 1; j < array.length; j++) {                    if (array[min] > array[j]) {                        min=j;//找出最小记录                    }                }                if(i!=min){//如果最小记录位置有变化,执行交换                    swap(array, i, min);                }            }        }    }    /**     * 将数组的2个位置交换     */    static void swap(int[] array, int i, int j) {        if (array != null && array.length > 0) {            if (i >= 0 && j >= 0 && i <= array.length && j <= array.length) {                int temp = array[i];                array[i] = array[j];                array[j] = temp;            }        }    }


2 0
原创粉丝点击