算法的五大特性:
有穷性
确定性
可行性
输入
输出
算法设计的要求:
正确性
可读性
健壮性
通用性
效率与存储量需求
算法效率的度量
事后统计:
计算机内部进行执行时间和实际占用空间的统计
但是此问题是需要依赖软硬件,不容易暴露算法本省的问题,所以没有实际价值
事前分析:
求出一个时间界限函数:
先在现有的算法中找出合适的策略
对问题的规模有一定的了解
程序设计的语言
编译器所编译的机器代码的质量
机器执行指令的速度
将硬件等有观的问题分隔开来,就可以认为一个特定的算法的运行工作量的大小,只依赖于问题的规模,或者说
是问题规模的函数
算法分分析
时间复杂度(asymptomatic time complexity)
一般的用最深层的循环内的语句的执行频度来表示即大O表示法O(n)
o(1)是常量时间阶 o(n*n)是二项式的时间阶
其中要说明一点o(n*n)n取实数是和二项式的差距很大
空间复杂度(space complexity)
存储空间:
指令常数变量所占用的存储空间
输入数据所占用的存储空间
辅助(存储)作用空间
一般的说来空间复杂度指的是辅助空间
一维数组a[n]的空间复杂度是o(n)
二维数组a[n*m]的空间复杂度是o(n*m)
数据结构的几个有特点的结构
1、线性表
2、栈
3、队列
4、数组
5、树
算法中的特定算法
1、查找算法
2、排序算法
文件的概念:
大量性质相同的数据记录的集合。文件的所有记录是按某种排列顺序呈现在用户面前,这种排列顺序可以是按记录的关键字,也可以是按记录进入文件的先后等。则记录之间形成一种线性结构(逻辑上的),称为文件的逻辑结构;文件在外存上的组织方式称为文件的物理结构。基本的物理结构有:顺序结构,链接结构,索引结构 。
⑷ 文件的分类
⑴ 按记录类型,可分为操作系统文件和数据库文件:
① 操作系统文件(流式文件) : 连续的字符序列(串)的集合;
② 数据库文件: 有特定结构(所有记录的结构都相同)的数据记录的集合。
⑵ 按记录长度,可分为定长记录文件和不定长记录文件:
① 定长记录文件:文件中每个记录都有固定的数据项组成,每个数据项的长度都是固定的;
② 不定长记录文件:与定长记录文件相反。
检索记录
根据用户的要求从文件中查找相应的记录。
① 查找下一个记录:找当前记录的下一个逻辑记录;
② 查找第k个记录:给出记录的逻辑序号,根据该序号查找相应的记录;
③ 按关键字查找:给出指定的关键字值,查找关键字值相同或满足条件的记录。对数据库文件,有以下四种按关键字查找的方式:
◆ 简单匹配:查找关键字的值与给定的值相等的记录;
◆ 区域匹配:查找关键字的值在某个区域范围内的记录;
◆ 函数匹配:给出关键字的某个函数,查找符合条件的记录;
◆ 组合条件匹配:给出用布尔表达式表示的多个条件组合,查找符合条件的记录。
插入记录
将给定的记录插入到文件的指定位置。插入是首先要确定插入点的位置(检索记录),然后才能插入。
⑶ 删除记录
从文件中删除给定的记录。记录的删除有两种情况:
① 在文件中删除第k个记录;
② 在文件中删除符合条件的记录。
⑷ 修改记录
对符合条件的记录,更改某些属性值。修改时首先要检索到所要修改的记录,然后才能修改。
⑸ 记录排序
根据指定的关键字,对文件中的记录按关键字值的大小以非递减或非递增的方式重新排列(或存储)。
(其中的各项算法在下次再接着总结、相关问题下次在展开总结)