算法理解
首先找出A中的最小元素,并将其与A[1]进行交换,接着,找出次最小元素,与A[2]进行交换,对A中的前n-1个元素按此方式继续。
循环不变式
for循环的每次循环开始时,子数组A[1..i-1]由A中的元素组成,且已按序排列。
增长量级
最好情况与最坏情况均为
代码实现 - Python
import randomdef select_sort(A): for i in range(0, len(A)-1): key = A[i] min = i for j in range(i+1, len(A)): if A[j] < A[min]: min = j A[i] = A[min] A[min] = keylist_ori = []for i in range(10): list_ori.append(random.randrange(0, 5000))print(list_ori)select_sort(list_ori)print(list_ori)