# 选择排序

介绍

  1. 选择待排序序列中选择最小的元素,然后和待排序序列的第一个元素交换位置
  2. 将剩下的待排序序列中选择最小的元素,和待排序序列的第二个元素交换位置
  3. 重复以上步骤,直到将整个序列都排序。

因为在不断的选择剩余最小的元素,所以称之为选择排序

算法特点

  • 不稳定排序
  • 交换次数固定为n-1次交换
  • 比较次数也固定为(n-1)*n/2
  • 算法复杂度为:O(n^2)
  • 选择排序的时间复杂度和数据的输入无关

代码示例-Java

 /**
 * 简单选择排序
 * @param nums
 * @return
 */
public static void selectSort(int[] nums){
    if (nums == null || nums.length <= 0) return;

    int minIndex, temp;
    for (int i = 0; i < nums.length ; i++){
        minIndex = i;
        for (int j = i + 1; j < nums.length; j++){
            if (nums[j] < nums[minIndex]){
                minIndex = j;
            }
        }

        temp = nums[minIndex];
        nums[minIndex] = nums[i];
        nums[i] = temp;
    }
}

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

推荐阅读更多精彩内容

  • 1、基本思想 每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕。也就是:每一...
    Sopphire阅读 5,115评论 0 0
  • 版本记录 前言 将数据结构和算法比作计算机的基石毫不为过,追求程序的高效是每一个软件工程师的梦想。下面就是我对算法...
    刀客传奇阅读 4,147评论 0 2
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 10,585评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 9,084评论 0 15
  • windows用户需要下载Git 其次你再去注册个Github 然后你需要配置sshkey,一台电脑需要一个ssh...
    wdsea阅读 1,391评论 0 0