插入排序证明引发的对于循环不变式的定义
来源:互联网 发布:软件wbs 编辑:程序博客网 时间:2024/06/03 12:59
对插入排序正确性的证明
设一个无序数组为Array,长度为n(n > 1);
当对数组第二个元素排序时,依照排序算法,当n = 2时算法成立;
……
当对n > 2时进行数学归纳:
倘若n-1是已经排好序的,根据插入排序,算法将对n也成立;
证毕
循环不变式的定义
来自算法导论上的讨论:
有没有注意到这个算法在想法上类似于多米诺骨牌:
我们在推倒多米诺骨牌的第一个时后面紧接着的牌就会全部倒下.
1.第2张多米诺骨牌由于第一张而倒下.
…
k+1.第k+1张多米诺骨牌由于第k张而倒下.
…
直到结束
回到插入排序的讨论,也就是说第k+1的正确性依赖于前k次的结果,而k的正确性依赖第k-1的正确性…直到一个起始的位置位置;只要我们要保证起始的正确性与每次抽象讨论的第k+1正确性,即可保证对于任意的自然数都成立.
讨论至此,我们似乎看到这些类似情况的相同点,即依赖抽象命题p (k),并且若是p(k)为真则p(k+1)为真,然后从1到无穷使k遍历,使得对于任意自然数都成立。
那么我们给循环不变式下一个定义
定义:
循环不变式是一个依赖于自然数的数学命题P,P满足对于任意自然数k,若是P(K)为真则P(K+1)为真。
0 0
- 插入排序证明引发的对于循环不变式的定义
- 对于循环不变式证明的总结
- 用归纳法证明循环不变式的正确性。
- 用循环不变式证明RB-INSERT-FIXUP的正确性
- 用循环不变式证明RB-DELETE-FIXUP的正确性
- 算法学习二:循环不变式证明算法的正确性
- 插入排序与循环不变式
- 插入排序InsertSort的三种实现方式及循环不变式的使用
- 算法导论-循环不变式、插入排序、归并排序
- 用循环不变式证明BINOMIAL-HEAP-UNION(H1, H2)的正确性
- 对算法导论中用循环不变式证明算法正确性的理解
- 算法基础-使用循环不变式解决插入排序问题
- 循环不变式与lower_bound证明
- 循环不变式的理解
- 循环不变式的特征
- 循环不变式的理解
- 对于 插入排序的简单讨论
- 循环不变式的思想及其应用
- HDFS fsimage和edits合并实现原理
- 使用List<Object>封装的JsonObject等类的读取方法
- 保护模式--基础
- DES和AES加密:指定键的大小对于此算法无效
- viPlugin是一个eclipse 针对vi的插件
- 插入排序证明引发的对于循环不变式的定义
- Qt应用程序添加图标
- SSM 配置
- 【问题 解决】mxnet训练mnist数据集的Train_accuracy很小
- 初探MeidaPlayer底层实现(一)
- 个人常用sql语句记录
- SDL库的学习笔记之四—事件处理
- 装饰模式(结构型)
- springMVC使用ehcache实现简单的单点登录