python 选择排序

mac2026-06-19  6

一趟排序记录最小的数,放到第一个位置 再一趟排序记录列表无序区最小的数,放到第二个位置无序区最小数的位置

遍历一遍找到最小的数

min 都是O(n) removeO(n)

def select_sort(li): for i in range(len(li)-1): #大循环 #记录最小出现的位置,假设第一个值是最小 min_loc = i #没有必要从第一个数开始比较,是自己和自己比较,直接i+1和后面的数比较 for j in range(i+1,len(li)): if li[j] < li[min_loc]: #这就是最小值了 min_loc = j li[i],li[min_loc] = li[min_loc],li[i] print(li) li = [3,4,2,1,5,6,8,7,9] print(li) select_sort(li)

li[i] 就是最小的值

def select_sort(li): for i in range(len(li)-1): #大循环 #记录最小出现的位置,假设第一个值是最小 min_loc = i #没有必要从第一个数开始比较,是自己和自己比较,直接i+1和后面的数比较 for j in range(i+1,len(li)): if li[j] < li[min_loc]: #这就是最小值了 min_loc = j if min_loc != i: li[i],li[min_loc] = li[min_loc],li[i] print(li) li = [3,4,2,1,5,6,8,7,9] print(li) select_sort(li)

最新回复(0)