选择排序:时间复杂度O(n2)(不随数据规模和内容改变),
适用于小规模数据,不占用额外内存。
算法步骤:
1. 循环数列,默认第一个值为最小值,存储其下标值。
2. 将第一个值和后面的值比较,如果大于后面的某值,替换之前的最小值下标,
循环到最后如果最小值下标不同于第一个值的下标,则将两个值交换。
3. 重复第二步,直到所有元素均排序完毕。
def choice_sort(sample: list):
for i in range(len(sample) - 1):
min_index = i
for j in range(i + 1, len(sample)):
min_index_num = sample[min_index]
s = sample[j]
if s < min_index_num:
min_index = j
# i不是最小数时,将i和做最小数交换
if i != min_index:
sample[i], sample[min_index] = sample[min_index], sample[i]
return sample
注:个人觉得和冒泡排序相似,冒泡使用值,选择排序存储下标。
参考:https://www.cnblogs.com/kaibindirver/p/12093823.html
本文解析了选择排序算法,强调其时间复杂度为O(n²),适用于小规模数据且内存效率高。通过步骤演示和代码实例,对比其与冒泡排序的异同,适合初学者理解基本排序算法原理。
--选择排序&spm=1001.2101.3001.5002&articleId=110369089&d=1&t=3&u=3bd646122ded40f5b684e6e8dcb2a160)
5296

被折叠的 条评论
为什么被折叠?



