【排序算法】01选择排序

选择排序的核心是选择,即只比较,比较完成一轮确定一个数的最终位置之后再进行交换

算法简单描述

存在一个大小为n的无序数组,需要进行排序
第一轮:
第1个数分别和第2到n个数比较,记录最小值的坐标,全部比较完成之后,将最小值和第1个值交换
第二轮:
第2个数分别和第3到n个数比较,记录最小值的坐标,全部比较完成之后,将最小值和第2个值交换
。。。。。。。
第n-1轮:
比较低n-1和n,若n

代码

    /**
     * 选择排序
     * @param nums
     * @return
     */
    private static int[] sortSelection(int[] nums){
        for(int i=0;i

时间复杂度

一共需要进行 (n-1)+(n-2)+.......+3+2+1 次处理,根据等差数列求和公式可以算出来:(a1+an)n/2 即 n(n-1)/2 ,化简得O(n的平方)

你可能感兴趣的:(【排序算法】01选择排序)