程序设计艺术学习笔记(1)

序言习题

(1).通过一系列的替代,将四个变量的值(a,b,c,d)变为(b,c,d,a),用最少的步骤

开门菜,然而还是有很多值得思考的地方。能帮助人理解计算机对于赋值的操作。通过观察,可以认为这是一个a[i]赋值给a[i-1]的操作。最少的步骤,只需要五步即可。需要一个t来作辅助,t=a,a=b,b=c,c=d,d=t即可

(2).证明欧几里得算法的第一步,m<=n 仅在头一次运行的时候可能出现

欧几里得算法是计算两个数m和n的最大公约数的算法。考虑两种情况,若m>n,则第一次运行后有m = pn+r,若r不等于0,则m=n,n=r,因为r < n,所以往后都不会出现m<=n的情况。若一开始m<=n,则除开等于情况,第一次有m = 0 * n +m(因为m < n),然后 m =n ,n=m,变成 n除以m的情况,回到第一种情况的条件。证毕。
(3).改进欧几里得算法,使得m=n这种平凡的语句得到避免
恕我愚钝,只能想到开辟数组空间来避免赋值语句的办法
F1:开辟一个大小为n+2的数组
F2:i = 0 a[i]=m,a[i+1]=n
F3:a[i+2] = a[i]%a[i+1] ,if a[i+2] != 0
F4:i=i+1, go to F3
F5: return a[i+2]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1首先介绍编程的基本概念和技术,然后详细讲解信息结构方面的内容,包括信息在计算机内部的表示方法、数据元素之间的结构关系,以及有效的信息处理方法。此外,书中还描述了编程在模拟、数值方法、符号计算、软件与系统设计等方面的初级应用。此第3版增加了数十项简单但重要的算法和技术,并根据当前研究发展趋势在数学预备知识方面做了大量修改。 第2对半数值算法领域做了全面介绍,分“随机数”和“算术”两章。本总结了主要算法范例及这些算法的基本理论,广泛剖析了计算机程序设计与数值分析间的相互联系,其中特别值得注意的是作者对随机数生成程序的重新处理和对形式幂级数计算的讨论。 本书附有大量习题和答案,标明了难易程度及数学概念的使用。 本书内容精辟,语言流畅,引人入胜,可供从事计算机科学、计算数学、计算技术诸方面的工作人员参考、研究和借鉴,也是相关专业高等院校的理想教材和教学参考书。 《计算机程序设计艺术排序和查找(第3)(第2版)》内容简介:这是对第3的头一次修订,不仅是对经典计算机排序和查找技术的最全面介绍,而且还对第1中的数据结构处理技术作了进一步的扩充,通盘考虑了将大小型数据库和内外存储器。它遴选了一些经过反复检验的计算机方法,并对其效率做了定量分析。第3的突出特点是对“最优排序”一节作了修订,对排列论原理与通用散列法作了全新讨论。 ——《豆瓣读书》

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值