【排序】6.选择排序

每一次从待排数据中选择最小或最大的元素,存放到序列的起始位置,知道全部待排数据排完

public static void selectsort(int a[]){
        if(a==null||a.length==0){
            return;
        }
        for (int i = 0; i < a.length-1; i++) {
            int flag=i;
            for (int j = i+1; j < a.length; j++) {//找到合适的数,进行标记
                if (a[flag]<a[j]) {
                    flag=j;
                }
            } 
            if (flag!=i) {//一轮完成后,交换顺序
                int n=a[i];
                a[i]=a[flag];
                a[flag]=n;
            }
        }
    }

它是一种不稳定的排序算法

时间复杂度:时间复杂度为 O(N2)

      因为交换次数比较少,比冒泡排序要快

空间复杂度:O(1)

posted @ 2017-10-22 09:25  chain155  阅读(74)  评论(0)    收藏  举报