原文:[珠玑之椟]浅谈代码正确性:循环不变式、断言、debug

这个主题和代码的实际写作有关,而且内容和用法相互交织,以下只是对于其内容的一个划分。 编程珠玑 上只用了两个章节 页左右的篇幅介绍,如果希望能获得更多的实例和技巧,我比较推崇 程序设计实践 Practise of Programming 编程精粹:编写高质量C语言代码 Writing Solid Code 这两本书,只要有一般的C语言基础就能读懂,而且读起来比较快,读完后能提高不少coding的 ...

2013-07-02 08:51 0 3351 推荐指数:

查看详情

如何写出正确的二分查找?——利用循环不变式理解二分查找及其变体的正确性以及构造方式

序言   本文以经典的二分查找为例,介绍如何使用循环不变式来理解算法并利用循环不变式在原始算法的基础上根据需要产生算法的变体。谨以本文献给在理解算法思路时没有头绪而又不甘心于死记硬背的人。   二分查找究竟有多重要?《编程之美》第2.16节的最长递增子序列算法,如果想实现O(n2)到O ...

Sun May 26 17:07:00 CST 2013 21 8274
循环不变式

引言   算法程序形式化设计和证明是确保算法程序逻辑结构正确的最理想途径,是保证软件可靠的有效手段之一;而体现了算法程序本质特征的循环不变式在算法程序形式化方法中具有十分重要的作用。循环不变式是程序设计理论中的一个重要概念。这一概念的建立在程序设计从艺术走向科学这一历 史的转变过程中起着巨大 ...

Wed May 21 21:51:00 CST 2014 0 2335
循环不变式的概念

2013-07-19 10:29:14 最近看《编程珠玑》、《算法导论》,其中有一个术语“循环不变式”,多次看到,一致不是很理解,查了一些资料,还不是很懂,下面是收集到的的一些靠谱的资料。 下面转自:http://www.cnblogs.com/bamboo-talking/archive ...

Fri Jul 19 18:44:00 CST 2013 0 2771
算法:循环不变式

循环不变式(loop invariants)不只是一种计算机科学的思想,准确地说是一种数学思想。在数学上阐述了通过循环(迭代、递归)去计算一个累计的目标值的正确性。 比如插入排序,每次循环从数组A中取出第j个元素插入有序区A[1 .. j-1],然后递增j。这样A[1 .. j-1]的有序始终 ...

Wed Mar 06 22:37:00 CST 2013 0 2844
Jmeter响应断言判断返回结果正确性

目的:判断接口返回的数据的正确性 原理:断言组件是通过获取服务器响应数据, 然后根据断言规则去匹配这些响应数据;匹配到是正常现象, 此时是看不到任何提醒的. 如果匹配不到, 此时Jmeter会断定这个事务失败, 在结果树中看到的请求名称是红色字体. ...

Sat May 29 01:39:00 CST 2021 0 1192
在别人写的代码上做修改我是这样保证正确性

引子 9年前我入职一家公司,团队里都是之前公司的原同事,彼此都很熟,对各人的能力也都很了解。我当时负责整个公司的搜索引擎。上班第一天,我在看之前的遗留代码。原同事过来问我:“你是打算用这个老系统改造还是重写?”我笑了笑说:“我还是重写吧。” 原同事也意会的笑了笑说:“我就知道。”当时 ...

Thu Oct 21 23:32:00 CST 2021 4 1591
算法正确性证明

算法证明 经典排序算法 为什么基于比较的排序算法的时间复杂度不能低于O(nlogn) 决策树与二叉树 红黑树 2-3-4树 树的遍历 算法正确性证明 完全正确性与部分正确性 循环不变量   为什么使用循环 ...

Mon Nov 05 06:27:00 CST 2018 0 945
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM