跳至正文
View Categories

< 1 min read

选择排序算法 #

  1. 选择排序算法介绍
  2. 选择排序算法原理
  3. 选择排序算法的实现

收获 #

学完本节内容,可以初步理解并掌握选择排序算法。

选择排序算法介绍 #

选择排序(Selection sort)是一种简单直观的排序算法。
选择排序首先从待排序列表中找到最小(大)的元素,存放到元素列表的起始位置(与起始位置进行交换),作为已排序序列,第一轮排序完成。然后,继续从未排序序列中找到最小(大)的元素,存放到已排序序列的末尾。直到所有元素都存放到了已排序序列中,列表排序完成。
选择排序每次都是去找最小(大)的元素,隐含了一种挑选的过程,所以被称为选择排序。

选择排序算法原理 #

选择排序的原理如下:

  1. 从待排序列表中找到最小的元素(升序排列,降序排列则找最大的元素),存放到列表的起始位置,作为已排序的序列。
  2. 继续从未排序序列中找到最小的元素,存放到已排序序列的末尾(同时也是未排序序列的起始位置)。
  3. 重复第2步,直到所有元素都已经存放到了已排序序列,则列表排序完成。

选择排序算法的实现 #

python实现代码如下:

a=[10,17,50,7,30,15,5,38,21]
n=len(a)
for i in range(n-1):
    min_index=i#从列表的最左边开始,假设为最小元素
    for j in range(i+1,n):
        if a[j]<a[min_index]:#如果后面的值小,那么把后面的index值记为最小值索引
            min_index=j
    #遍历一次循环结束后,找到了这一轮后面的最小值位置,并与左边进行位置交换
    a[i],a[min_index]=a[min_index],a[i]
print(a)

小结 #

理解并掌握选择排序算法的原理
掌握选择排序的代码实现

习题 #

  1. 习题1:画出选择排序算法的流程图
  2. 习题2:使用选择排序算法,对列表[10, 17, 50, 7, 30, 24, 27, 45, 15, 5, 36, 21]进行升序排列