经典排序算法(一) —— Selection Sort 选择排序

经典排序算法(一) —— Selection Sort 选择排序

简介

选择排序是一种简单直观的排序算法。

它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后追加到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

排序过程

实现

/**
     * 选择排序
     * @param nums 待排序数组
     * @return 排序完成数组(升序)
*/
public static int[] sort(int[] nums) {
    
    

    for (int i = 0; i < nums.length; i++) {
    
    
        int max = i;
        for (int j = i; j < nums.length; j++) {
    
    
            if (nums[j] > nums[max]){
    
    
                max = j;
            }
        }
        exchangeArrayEle(nums, max, i);
    }
    return nums;
}

/**
     * 交换数组元素
     * 临时变量法
     *
     * @param nums 数组
     * @param i 待交换元素i
     * @param j 待交换元素j
 */
public static void exchangeArrayEle(int[] nums, int i, int j) {
    
    
    Assert.assertNotNull(nums);
    int tmp = nums[i];
    nums[i] = nums[j];
    nums[j] = tmp;
}

复杂度

O(n^2)

猜你喜欢

转载自blog.csdn.net/SpringBoots/article/details/121895341
今日推荐