首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
编程语言
> 详细
一、程序与算法
时间:
2018-10-09 22:19:13
阅读:
212
评论:
0
收藏:
0
[点我收藏+]
标签:
估算
本质
proc
形式
存储结构
关系
选择
逻辑
基本
一、程序的本质
程序是为了实际的问题而存在从本质上而言,程序是解决问题的步骤描述。
数据结构起源
计算机从解决数值计算问题到解决生活中的问题
现实生活中的问题涉及不同个体间的复杂联系
需要在计算机程序中描述生活中个体间的联系
数据结构主要研究非数值计算程序问题中的操作对象以及它们之间的关系
数据结构中的概念:
数据 – 程序的操作对象,用于描述客观事物
数据的特点:可以输入到计算机;可以被计算机程序处理
数据元素 – 组成数据的基本单位
数据项:一个数据元素由若干数据项组成
数据对象 – 性质相同的数据元素的集合
数据的逻辑结构
集合结构:数据元素之间没有特别的关系,仅同属相同集合
线性结构:数据元素之间是一对一的关系
树形结构:数据元素之间存在一对多的层次关系
图形结构:数据元素之间是多对多的关系
数据存储的物理结构
物理结构:逻辑结构在计算机中的存储形式
顺序存储结构:将数据存储在地址连续的存储单元里
链式存储结构:将数据存储在任意的存储单元里,通过保存地址的方式找到相关联的数据元素
二、程序的灵魂-算法
数据结构只是静态的描述了数据元素之间的关系
高效的程序需要在数据结构的基础上设计和选择算法
算法的定义:
算法是特定问题求解步骤的描述
在计算机中表现为指令的有限序列
算法是独立存在的一种解决问题的方法和思想。
算法的特性:
输入:算法具有0个或多个输入
输出:算法至少有1个或多个输出
有穷性:算法在有限的步骤之后会自动结束而不会无限循环
确定性:算法中的每一步都有确定的含义,不会出现二义性
可行性:算法的每一步都是可行的
算法设计的准则:
正确性
算法对于合法数据能够得到满足要求的结果
算法能够处理非法输入,并得到合理的结果
算法对于边界数据和压力数据都能得到满足要求的结果
正确性是算法最需要满足的基本的准则,但是作为计算机程序,不可能无限制的满足这条准则。
可读性
算法要方便阅读,理解和交流
健壮性
算法不应该产生莫名其妙的结果
高性价比
利用最少的时间和资源得到满足要求的结果
算法效率的度量
大O表示法
算法效率严重依赖于操作(Operation)数量
在判断时首先关注操作数量的最高次项
操作数量的估算可以作为时间复杂度的估算
算法的空间复杂度:
算法的空间复杂度通过计算算法的存储空间实现
S(n) = O(f(n))
其中,n为问题规模,f(n)为在问题规模为n时所占用存储空间的函数
大O表示法同样适用于算法的空间复杂度
当算法执行时所需要的空间是常数时,空间复杂度为O(1)
空间与时间的策略
多数情况下,算法执行时所用的时间更令人关注
如果有必要,可以通过增加空间复杂度来降低时间复杂度
同理,也可以通过增加时间复杂度来降低空间复杂度
一、程序与算法
标签:
估算
本质
proc
形式
存储结构
关系
选择
逻辑
基本
原文地址:http://blog.51cto.com/yinsuifeng/2296559
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
Spring Cloud 从入门到精通(一)Nacos 服务中心初探
2021-07-29
基础的排序算法
2021-07-29
SpringBoot|常用配置介绍
2021-07-29
关于 .NET 与 JAVA 在 JIT 编译上的一些差异
2021-07-29
C语言常用函数-toupper()将字符转换为大写英文字母函数
2021-07-29
《手把手教你》系列技巧篇(十)-java+ selenium自动化测试-元素定位大法之By class name(详细教程)
2021-07-28
4-1 YAML配置文件 注入 JavaBean中
2021-07-28
【python】 用来将对象持久化的 pickle 模块
2021-07-28
马拉车算法
2021-07-28
用Python进行冒泡排序
2021-07-28
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!