选择排序是排序算法中一个重要的内容,其排序思想:就是在列表中找到最小的数,其和列表的第0位的元素进行位置交换,此时列表中最小的元素就确定下来了,今后就不用再比较了此部分了,因为该部分被称为有序区域,那么其后面的部分仍然是无需区域,所以再这无序区域中再找最小的元素并和该无序区域的第一位置的元素进行位置交换,并将此次最小的元素加入到有序部分中,以此类推完成选择排序(简单理解:一趟排序记录最小的数,放在第一个位置,再一趟排序记录列表无序区域最小的数,放到第二个位置,以此类推)

接下来我们举个案例,让大家能充分理解选择排序:

创建一个无序的列表如下图所示:

排序算法——选择排序_选择排序

此时该列表都是无序排列的,第一趟将通过列表从左到右一一对比发现最小的元素是列表第2位的元素1是最小的,此时元素1和位于里列表的第0位的元素4进行位置交换如下图所示,交换后,元素1所在的红色区域叫做有序区域

排序算法——选择排序_选择排序_02

第二趟我们继续在白色区域(即无序区域)从左到右一一对比发现最小的元素是列表第3位的元素2是最小的,此时将元素2和位于列表的第1位的元素5进行位置交换如下图所示,交换后,元素2加入到红色区域成为有序区域的一员

排序算法——选择排序_选择排序_03

以此类推,第三趟结果如下:

排序算法——选择排序_选择排序_04

第四趟结果如下:

排序算法——选择排序_选择排序_05

第五趟结果如下:

排序算法——选择排序_选择排序_06

经过五趟处理后,此时列表已经从无序变为有序了,接下来我们通过代码来实现:

排序算法——选择排序_选择排序_07

运行结果如下:

排序算法——选择排序_选择排序_08