目录
算法思想:1.在未排序序列中找到最小(大)元素,存放到排序序列的开始位置2.从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾(即为未排序的开始)3.以此类推,直到所有元素均排序完毕
选择排序法(以从小到大排序为例)
算法思想:
1.在未排序序列中找到最小(大)元素,存放到排序序列的开始位置
2.从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾(即为未排序的开始)
3.以此类推,直到所有元素均排序完毕
注释很详细的讲解为什么这样操作
def select_sort(li):
for i in range(len(li)-1):#第几躺
min_loc=i#记录最小数的位置
for j in range(i+1,len(li)):
#range左闭右开,没必要算i的情况,所有从i+1开始
if li[j] < li[min_loc]:#如果小于未排序的开始的数,则交换
min_loc = j
if min_loc !=i:#在for循环外部,如果最小位置到后面,即排序完毕
li[i],li[min_loc]=li[min_loc],li[i]
li=[3,4,2,1,5,6,8,7,9]
select_sort(li)
print(li)
我们来分步看看
def select_sort(li):
for i in range(len(li)-1):#第几躺
min_loc=i#记录最小数的位置
for j in range(i+1,len(li)):
#range左闭右开,没必要算i的情况,所有从i+1开始
if li[j] < li[min_loc]:#如果小于未排序的开始的数,则交换
min_loc = j
print(li)
if min_loc !=i:#在for循环外部,如果最小位置到后面,即排序完毕
li[i],li[min_loc]=li[min_loc],li[i]
li=[3,4,2,1,5,6,8,7,9]
select_sort(li)
对比一下冒泡排序
是不是发现步骤少了呢!