选择排序

1 基本原理

遍历数组,每次选择一个最大(最小)的元素放置于队头(队尾),遍历完成后,整个数组有序。

2 具体实现

public static void SelectSort(int[] a){
        int hi = a.length -1 ;
        for (int i = 0; i <= hi; i++) {
            int min = i;
            for ( int j = i+1; j <= hi; j++){
                if(SortUtil.less(a,j,min)){
                    min = j;
                }
            }
            SortUtil.swap(a,i,min);
        }
    }

3 算法分析

使用了两层for循环,时间复杂度是O(N^2),空间复杂度是O(1),不是稳定的排序,比如 5 6 5 2 第一遍排序后第一个5会和最后一个2交换,导致两个5的顺序发生变化。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容