导图社区 算法与程序设计
这是一篇关于算法与程序设计的思维导图,主要内容包括:3.程序设计语言与程序设计方法,4.程序开发环境,2.常见的基本算法,1.算法的定义描述及优化。
编辑于2024-08-30 15:25:32算法与程序设计
1.算法的定义描述及优化
1.算法的定义描述及优化
什么是算法
定义一个可终止过程的、有序的、无歧义的可执行的步骤的集合。
有序的:所有步骤应有明确的执行顺序。
无歧义的:每一步操作均应具体、唯一。
可执行的:每一步操作都应有效。
可终止过程:应带来最终的确定执行结果。
算法的基本性质
目的性
有限性
分步性
操作性
有序性
算法的基本特征
有穷性
确定性
有效性
算法有零个或多个输入
算法有一个或多个输出
算法描述方法
自然语言
流程图
用一组几何图形和有向线条、配以简单文字符号来表示算法。
盒图
伪代码
算法中的三种控制结构
顺序结构
分支结构
循环结构
子程序:
功能相对独立的程序段,可以由其它程序调用
程序模块化
1、将复杂程序划分为若干个功能模块。
2、各个模块可相对独立开发。
3、模块之间通过一定的接口相互联系。
2.算法的优化
算法的评价
正确性
时间复杂度
算法运行时间的函数
空间复杂度
算法占用内存空间大小的函数。
可理解性
算法的优化
时间上
空间上
结构上
2.常见的基本算法
最值算法
累加累乘算法
查找算法
顺序查找
顺序查找也称为线形查找,从一组数据的一端开始,顺序扫描,依次将扫描到的数据,与给定值相比较,若相等,则表示查找成功;若扫描结束仍没有找到数据等于给定值,则表示查找失败,
二分查找
其他
分块查找
哈希查找
插入算法
要明确该数据应该插在什么地方?
要了解怎样给它留出空位?
要考虑如何把数据放到对应的位置?
排序算法
依次比较相邻的两个数,将小数放在前面,大数放在后面。
如果有n个数,则要进行n-1趟比较。
在第1趟比较中要进行n-1次两两比较,在第j趟比较中要进行n-j次两两比较。
4.程序开发环境
3.程序设计语言与程序设计方法
程序设计语言
机器语言
用二进制和编码方式提供的指令系统所编写程序的语言。
汇编语言
是用助记符号编写程序的语言。
高级语言
是用类似自然语言的语句编写程序的语言。
优点:形式上接近于算术语言和自然语言
'高级”的含义
它是从问题的角度考虑,而非从机器的角度。
它绕开复杂的硬件问题,易于掌握和使用,
主要用于编写位于较高层次的应用程序。
所有程序都需转换成机器语言程序计算机才能执行。
程序设计方法
程序设计的一般过程
结构化程序设计方法
原则
在软件设计和实现过程中,采用自顶向下逐步求精、模块化的方式进行。
程序设计模式
数据结构+算法
面向对象的程序设计方法
涉及到哪个对象的功能,便由哪个对象自己去处理,不同对象之间,则通过消息或事件发生联系;对象依据接收到的消息或事件进行工作。
对象
描述
属性和操作
对象本身是可以独立动作的,可以处理自己的一些事情而不需其他干预。
特点
对象可为其他对象服务,或接受其他对象服务。
对象只有在接收到需服务的请求时,才去服务。
消息
比如对象之间传递的内容指示、打听、请求 … …
消息它是对象之间相互交互的手段是对象间。。。。的途径
事件
当发生这种动作后将给所涉及对象发送一个消息,对象便可执行相应的行为。
可实现软件复用
像其它工程领域一样,将已有的软件产品做成构件(组件)并用于新的软件系统组装和集成,从而实现产业化