问题a:
我们还需说明A’是A中所有元素的一种排列
问题b:
证明第二个循环的不变式
每一次循环开始时,A[j]是A[j…n]中最小的
初始化:j=n显然成立
保持:上一次循环开始时,A[j+1]是A[j+1…n]中最小的,循环结束后,A[j]小于A[j+1],所以A[j]是A[j…n]中最小的
结束:结束时A[i]是A[i…n]中最小的
问题c:
第一个循环的不变式
每一次循环开始时A[1…i]已经有序
初始化:i=1,只有一个元素,显然成立
保持:每一次循环结束时,将第i小的数放置在第i位上,A[1…i]仍然有序
结束:A[1…n]全部有序
问题d
最坏情况下,数组是从大到小排列的,时间复杂度为
Θ(n2)
,与插入排序一样