您的位置:首页 > 其它

算法导论第三版   练习2.2-2

2015-03-08 16:02 204 查看
选择算法 伪代码:

for j=1 to n-1
smallest = j
for i=j+1 to n
if  A[i]<A[smallest]
smallest=i
A[j]=A[smallest]

循环不变式
在for循环(循环变量为j)的每次 迭代开始,包含元素A[1..j-1]对的子数组都是排好序的(由数组[1..n]的j-1个最小元素组成)

循环终止的条件是就j>n-1,因为每次循环的迭代j增加1,所以必有j=n。将j=n带入循环不变式的表示中,有子数组A[1..n-1]中的元素都是排好序的(由数组A[1..n]的n-1个最小元素组成),因此A
是其中最大的元素。所以整个数组都已拍好序。

最好运行情况与最坏运行情况都是  (n^2)


本文出自 “傻无尽的升级之旅” 博客,请务必保留此出处http://zhangshifan.blog.51cto.com/9970564/1618381
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: