C/C++教程

经典排序算法(一) —— 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)
这篇关于经典排序算法(一) —— Selection Sort 选择排序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!