首页 > 代码库 > 选择排序

选择排序

package foo;import java.util.Arrays;public class Main {        public static void selectionSort(int[] a, int len) {        int in, out, min;        for (out=0;out<len-1;++out) {            min = out;            for (in=out+1;in<len;++in) {                if(a[in]<a[min]) {                    min = in;                }            }            swap(a, out, min);        }    }        public static void swap(int[] a, int index1, int index2) {        int temp = a[index1];        a[index1] = a[index2];        a[index2] = temp;    }        public static void main(String[] args) throws Exception {        int[] a = new int[]{3,2,1,5,4};        selectionSort(a, a.length);        System.out.println(Arrays.toString(a));    }}

选择排序的效率:O(N*N),比较N*N/2,交换<N; 选择排序与冒泡排序比较,比较次数没有明显改变,但交换次数明显减少了很多