2013-07-19 10:29:14 最近看《编程珠玑》、《算法导论》,其中有一个术语“循环不变式”,多次看到,一致不是很理解,查了一些资料,还不是很懂,下面是收集到的的一些靠谱的资料。 下面转自:http://www.cnblogs.com/bamboo-talking/archive ...
引言 算法程序形式化设计和证明是确保算法程序逻辑结构正确的最理想途径,是保证软件可靠性的有效手段之一 而体现了算法程序本质特征的循环不变式在算法程序形式化方法中具有十分重要的作用。循环不变式是程序设计理论中的一个重要概念。这一概念的建立在程序设计从艺术走向科学这一历 史性的转变过程中起着巨大的推动作用,它不仅可以帮助人们理解那些难以理解的 精巧的循环算法程序,而且可以用来形式化地证明循环算法程序的 ...
2014-05-21 13:51 0 2335 推荐指数:
2013-07-19 10:29:14 最近看《编程珠玑》、《算法导论》,其中有一个术语“循环不变式”,多次看到,一致不是很理解,查了一些资料,还不是很懂,下面是收集到的的一些靠谱的资料。 下面转自:http://www.cnblogs.com/bamboo-talking/archive ...
循环不变式(loop invariants)不只是一种计算机科学的思想,准确地说是一种数学思想。在数学上阐述了通过循环(迭代、递归)去计算一个累计的目标值的正确性。 比如插入排序,每次循环从数组A中取出第j个元素插入有序区A[1 .. j-1],然后递增j。这样A[1 .. j-1]的有序性始终 ...
这个主题和代码的实际写作有关,而且内容和用法相互交织,以下只是对于其内容的一个划分。《编程珠玑》上只用了两个章节20页左右的篇幅介绍,如果希望能获得更多的实例和技巧,我比较推崇《程序设计实践》 ( ...
序言 本文以经典的二分查找为例,介绍如何使用循环不变式来理解算法并利用循环不变式在原始算法的基础上根据需要产生算法的变体。谨以本文献给在理解算法思路时没有头绪而又不甘心于死记硬背的人。 二分查找究竟有多重要?《编程之美》第2.16节的最长递增子序列算法,如果想实现O(n2)到O ...
示例如下: for i in range(10)可以看作是一个外循环,for j in range(2)看作是一个内循环 ...
列表推导式(list comprehension)是利用其他列表创建新列表(类似于数学术语中的集合推导式)的一种方法。它的工作方式类似于for循环,也很简单: 如果只想打印出那些能被3整除的平方数,只需要通过添加一个if部分在推导式中就可以完成 ...
一 简单循环 1 语法: LOOP 要执行的语句; EXIT WHEN <条件语句> --条件满足,退出循环语句 END LOOP; 2 例子: DECLARE int NUMBER(2) :=0;BEGIN LOOP int ...
在使用list.append(a), 添加动态改变的a(a = random.random())时,发现循环中每一个新的循环改变的a会在list中把之前的值全部改变; 查找后自了,Python是基于对象引用的,append添加的是一个“地址、引用”,当这个地址内的内容改变时,前面的同“地址 ...