选择排序:
找出序列中最小的放在最前面,再从后面的找最小的放在第二个位置,再从后的序列找出最小的放在第三个,相当于从原序列中找出最小的放在最前面,成一个新的序列,每找出一次最小值新序列多一个值,原序列少一个值。直至结束。
代码思想:
以第一个开始,参数i等于第一个数 ,与后面相比,谁比他小,i= 比他小的数,从头至尾比较一遍,找出最小的,放在最前面,再次执行此循环。
def select_sort(alist):
n = len(alist)
for j in range(n-1):
min_index = j
for i in range(j+1,n):
if alist[min_index] > alist[i]:
min_index = i
alist[j],alist[min_index] = alist[min_index],alist[j]
if __name__ =="__main__":
li = [54,26,93,17,77,31,44,55,20]
print(li)
select_sort(li)
print(li)
选择排序的最优时间复杂度为O(n的2次方)
最坏时间复杂度也为O(n的2次方)