选择排序法证明

选择排序法证明

 

问题重述:

n个数(n2a1, a2, …, an,从i = 1n - 1共经历n - 1次循环,对于每一次循环i,将ai+1,…,an依次和ai作比较。对于每一次比较(ai, aj) ,其中j = i + 1, …, n
aiajai, aj保持不变;
ai < aj,则ai, aj互换位置。
则最后这n个数将降序排列。

 

证明:

对于每一次“比较”操作。若ai ajai, aj保持不变,于是ai aj;若ai < aj,则ai, aj互换位置,于是ai > aj。因此经过一次“比较”操作后恒有ai aj。下面直接引用此结论。

 

对于每一次以下标i开始的循环,对j - i作数学归纳法。

进行了第j – i = 1次比较后,由上面结论知,ai aj。所以aiai, …, aj中最大的数。

假设当j – i = k 时“aiai, …, aj中最大的数”成立。则当j – i = k + 1时,

由上面结论知,ai aj,于是aj不超过ai--根据假设即ai, …, aj-1中最大的数。于是ai, …, aj-1中最大的数ai仍是ai, …, aj中最大的数。

由数学归纳法原理可知。aiai, …, an中最大的数。

 

完成排序后,由刚才对i的讨论的任意性可知a1 = max(a1, …, an), a2 = max(a2, …, an), …, an-1 = max(an-1, an)

因为max(a1, …, an) max(a2, …, an) ... max(an-1, an),≥ an

所以a1 a2 ... an

证毕。#

 

---------------------

紫数 2009-06-25于上海大学

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值