| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2333 人关注过本帖
标题:刚看了算法导论的循环不变式的疑惑
取消只看楼主 加入收藏
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
结帖率:95.65%
收藏
已结贴  问题点数:10 回复次数:0 
刚看了算法导论的循环不变式的疑惑
原因:之所以会去看循环不变性,是突然想到,要如何证明自己的递归算法的正确性,于是看着看着就看到了循环不变式,问题就来了。

分析:
一直在想,作者想给我们传达什么意思,什么叫做不变,不变在哪里,因为书中只给出了这个所谓的循环不变式的三个性质,所以一直纳闷,作者是怎么定义这个循环不变式的,想了想说说自己的见解,也不知是不是就是作者要表达的意思。如理解有错,请指教。

Definition:所谓的循环不变式,是一个笼统的说法,是一个整体上观察的整体性质不变,如书中举的例子(插入排序),其整体性质就是在插入之前,前面已经是排好顺序的了,这就是它不变的地方。也就是比如 5 2 4 6 1 3,再排序起初,5是排好序的(单5一个当然是排好序的),从第二开始拿出,插入之后,成为2 5,也是排好序的,接下来当第3个拿来时是4它前面也是排好序的了(2 5),所以能保证每次插入前都是排好序的。也就是说插入排序的不变,不变在,在待排结点之前前面的结点已经是排好序的了。


而循环不变式有三个性质(简单说,想了解自己看算法导论):
1.初始正确。2.保持(其实也就是保持要解决问题的不变性)3.终止,即循环结束。
而证明上面的插入排序的正确性,关键是保证了,1,2的正确性,到3终止时,就能得出结果(这里就是全部排好序了)。个人觉得三个要证明第2个才是最重要的,第2而证明了,不久可以由终止条件推出结果了吗?反正书上是说第3个最重要。这是我的理解,对其“不变”所指意思的理解。
收到的鲜花
  • demonleer2012-08-09 09:08 送鲜花  10朵   附言:态度认真
搜索更多相关主题的帖子: 如何 
2012-08-07 01:29
快速回复:刚看了算法导论的循环不变式的疑惑
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.085915 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved