python选择排序算法
选择排序算法是把数组中最小的值与第一个数组元素交换,然后找到次小的值,与第二个数组元素交换,依次类推,直到完成排序。
编写这类排序算法需要两层循环,第一层,设定变量为min,循环变量i赋值给min。外层循环是假定最前面的数值是最小的
内层循环是将遍历整个数组,与最前面的数值比较,如果后面的数值比最前面的小,就把该数值列标赋值给min
最后是将最小的元素与当前元素交换
代码如下
#选择排序法
#设置要排序的数组
data = [6,15,4,2,8,5,11,9,7,13]
#选择排序法
for i in range(len(data)):
min=i #设置最小的值
for j in range(i+1,len(data)):
if data[min]>data[j]:
min=j
#上面的代码是两层循环,最外层是把i赋值给变量min,内层循环是每次把列表中的第min值与第j个值比较,如果
#data[min]>data[j] ,也就是说min被赋值给最小的值列标
data[i],data[min]=data[min],data[i]
#最小值与当前元素互换
print(data)
选择排序是先拿第一个元素与后面的比,谁小放前面,接着是第二个元素与后面比,谁小放前面,时间复杂度是O(n^2),空间复杂度需要一个空间存储最小值下标,是O(1)