第一章GIS算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一节 概述
三、算法的几个要点:
1.算法的每一个步骤都必须清晰、明确。 2.算法所处理的输入的值域必须仔细定义。 3.同样的一个算法可以用几种不同的形式来描述。 3.同样的一个算法可以用几种不同的形式来描述。 4.可能存在几种解决相同问题的算法。 4.可能存在几种解决相同问题的算法。 5.针对同一个问题的算法可能会基于完全不同的解题思路,而 5.针对同一个问题的算法可能会基于完全不同的解题思路,而 且解题的速度也会有明显区别。
如果一个算法自身有缺陷,或者不适合于问题的求解,那么 该算法将不会解决问题。
2.确定性:是指算法的每个步骤必须含义明确,对每种可能的 2.确定性:
情况,算法都能给出确定的操作。即采用同一种算法,在同 样的条件下无论计算多少次,始终能够得到确定的结果。
3.清晰性:一个良好的算法必须思路清晰,结构合理。算法的 3.清晰性:
第一节 概述
Example
求两个正整数m,n的最大公约数gcd(m,n) gcd(m,n)
1.同一个算法有不同的表达方式: 1.同一个算法有不同的表达方式: 同一个算法有不同的表达方式
gcd(m,n)的欧几里得算法 gcd(m,n) (1) 第一步:如果n=0,返回m的值作 为结果,结束;否则进入第二步 第二步:用n去除m,将余数赋给r。 第三步:将n的值赋给m,将r的值 赋给n,回第一步。
第一节 概述
(2)算法Euclid(m,n) //使用欧几里得算法计算gcd(m,n) //输入:两个不全为0的非负整数m,n //输出:m,n的最大公约数 While n!=0 do r m mod n m n n r
Return m
第一节 概述
2.同一个问题有不同的解决方法: 2.同一个问题有不同的解决方法: 同一个问题有不同的解决方法
某些重要的问题无法求得精确解 某些问题利用精确解速度慢,无法接受
第一节 概述
算法设计技术:
使用算法解题的一般性方法,用于解决计算领域的多种问题。
详细表述算法的方法:
自然语言:用我们日常生活中的自然语言(可以是中文形式, 自然语言: 也可以是英文形式)也可以描述算法。 伪代码:我们可以用数学语言或约定的符号语言来描述算法。 伪代码: 流程图:一个算法可以用流程图的方式来描述,输入输出、判 流程图: 断、处理分别用不同的框图表示,用箭头表示流程的流 向。这是一种描述算法的较好方法,目前在一些高级语 言程序设计中仍然采用。也有其他的图形辅助工具。
在把算法转变为程序的过程中,可能会 发生错误或者效率非常低。
作为一种规律,一个好的算法是反复努力和重新修正的结果 算法是一个最优性问题:对于给定的问题需要花费多少力 气(资源)? 是不是每个问题都能够用算法的方法来解决?
发明或发现算法是一个非常有创造性和非常值得付出的过程! 发明或发现算法是一个非常有创造性和非常值得付出的过程!
第一节 概述
算法问题求解的过程: 算法问题求解的过程:
理解问题
决定:计算方法。精确和近似的解法。 设计算法
正确性证明
分析算法
根据算法写代码
第一节 概述
设计算法前做的第一件事情。 仔细阅读问题的描述 提出疑问
理解问题:
手工处理一些实例 考虑特殊情况 确定输入 抽象出问题,用数学表达式描述
选择精确解和近似解:
第一节 概述
算法和程序的关系: 算法和程序的关系:
(1)算法着重体现思路和方法,程序着重体现计算机的实现。 (2)程序不一定满足有穷性(死循环),另外,程序中的指令 必须是机器可执行的,算法中的指令无此限制。 (3)一个算法若用计算机语言来书写,它就可以是一个程序。
第二节 算法设计原则
1.正确性:是指对于一个问题,之所以将其放在第一位是因为 1.正确性:
第一节 概述
证明算法的正确性: :
证明对于每一个合法的输入,该算法都会在有限的时间内输 出一个满足要求的结果。 一般方法:数学归纳法 证明算法的正确性与不正确哪一个更容易?
分析算法:
算法有两种效率:时间效率和空间效率。 算法的另外两个特性:简单性和一般性。
第一节 概述
为算法写代码: 用计算机程序实现算法。
(1)gcd(m,n)的连续整数检测算法 gcd(m,n)的连续整数检测算法 第一步:将min{m,n}的值赋给t 第一步:将min{m,n}的值赋给t。 第二步:m除以t,如果余数为0 第二步:m除以t,如果余数为0,则进入第三步;否则, 进入第四步。 第三步:n除以t,如果余数为0 ,则返回t 第三步:n除以t,如果余数为0 ,则返回t值作为结果; 否则,进入第四步。 第四步:把t的值减1 第四步:把t的值减1。返回第二步。 gcd(m,n)的中学计算算法 (2)gcd(m,n)的中学计算算法 第一步:找到m 第一步:找到m的所有质因数。 第二步:找到n 第二步:找到n的所有质因数 第三步:从第一步和第二步中求得的质因数分解式找出所 有的公因数。 第四步:将第三步中找的质因数相乘,其结果作为给定数 字的最大公因数。
地理信息系统算法
第一章 算法设计和分析
第一节 概述 第二节 算法设计原则 第三节 算法复杂性的度量 第四节 最优算法
第一节 概述
一、算法的概念: 算法是一系列解决问题的清晰指令,也源自文库是说,能够 对一定规范的输入,在有限时间内获得所要求的输出
第一节 概述
二、算法特性:有穷性、确定性、可行性、有输入、有输出。 1.有穷性:对于任意一组合法输入值,在执行有穷步骤之后一 定能结束,即:算法中的每个步骤都能在有限时间内完成。 2.确定性:对于每种情况下所应执行的操作,在算法中都有确 切的规定,使算法的执行者或阅读者都能明确其含义及如何执 行。并且在任何条件下,算法都只有一条执行路径。 3.可行性:算法中的所有操作都必须足够基本,都可以通过已 经实现的基本操作运算有限次实现之。 4.有输入:作为算法加工对象的量值,通常体现为算法中的一 组变量。有些输入量需要在算法执行过程中输入,而有的算法 表面上可以没有输入,实际上已被嵌入算法之中。 5.有输出:它是一组与“输入”有确定关系的量值,是算法进 行信息加工后得到的结果,这种确定关系即为算法的功能。