选择排序算法 #
- 选择排序算法介绍
- 选择排序算法原理
- 选择排序算法的实现
收获 #
学完本节内容,可以初步理解并掌握选择排序算法。
选择排序算法介绍 #
选择排序(Selection sort)是一种简单直观的排序算法。
选择排序首先从待排序列表中找到最小(大)的元素,存放到元素列表的起始位置(与起始位置进行交换),作为已排序序列,第一轮排序完成。然后,继续从未排序序列中找到最小(大)的元素,存放到已排序序列的末尾。直到所有元素都存放到了已排序序列中,列表排序完成。
选择排序每次都是去找最小(大)的元素,隐含了一种挑选的过程,所以被称为选择排序。
选择排序算法原理 #
选择排序的原理如下:
- 从待排序列表中找到最小的元素(升序排列,降序排列则找最大的元素),存放到列表的起始位置,作为已排序的序列。
- 继续从未排序序列中找到最小的元素,存放到已排序序列的末尾(同时也是未排序序列的起始位置)。
- 重复第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:画出选择排序算法的流程图
- 习题2:使用选择排序算法,对列表[10, 17, 50, 7, 30, 24, 27, 45, 15, 5, 36, 21]进行升序排列