第一章 绪论

1.1什么是数据结构

1.计算机解决问题的步骤:从具体问题中抽象出数学模型–>设计解决数学模型的算法–>编出程序–>测试调整

1.2基本概念和术语

1.数据:是所以可以输入到计算机并能被计算机处理的符号的总称
2.数据元素:是数据的基本单位,由若干个数据项(最小单位)组成
3.数据对象:是相同性质的数据元素集合,是数据的一个子集
4.数据结构(date structure):是相互之间存在一种或多种特定关系(structure)的数据元素的集合
5.数据的基本结构:(1)集合(2)线性结构(3)树形结构(4)图(网)状结构
6.数据结构在计算机中的表示称之为物理结构或者存储结构
7.数据元素在计算机中有两种不同的表示方法:顺序映像(相对位置)和非顺序映像(指针)并由此得到两种不同的存储结构:顺序存储结构链式存储结构
8.数据类型:是一个值的集合和在定义这个值集上的一组操作的总称,包含非结构的原子类型结构类型
9.抽象数据类型(abstruct data type 即 ADT):一个数学模型以及定义在该模型上的一组操作【其实就是数据类型】包含:原子类型、固定聚合类型、可变聚合类型【显然后两种都可定义为结构类型】
10.数据结构类型可用(D.S.P)表示

ADT抽象数据类型名{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
}ADT抽象数据类型名

1.3抽象数据类型的表示与实现(未深究)

1.4算法和算法分析

1.算法:是对特定问题求解步骤的描述具有以下特性:
(1)有穷性
(2)确定性
(3)可行性
(4)输入
(5)输出
2.算法设计的要求
(1)正确性
(2)可读性
(3)健壮性
(4)效率与低存储量需求
3.算法效率的度量
一个算法是由控制结构(顺序、分支、循环)和原操作构成的
(1)算法运行工作量的大小只依赖于问题的规模(通常用整数量n表示),或者说他是问题规模的函数
(2)时间复杂度(渐进时间复杂度 ):
T(n)=O(f(n))随着问题规模n的扩大,算法执行时间的增长率和f(n)的增长率相同
(3)频度:指的是该语句的重复执行次数

例如:

(a){++x;s=0}x增1的频度为:O(1)常量阶

(b)for(i=1;i<=n;++i){++x;s+=x;}x增1的频度为:O(n)线性阶(一重循环)

(c)for(j=1;j<=n;++i)
for(k=1;k<=n;++k){++x;s+=x;}x增1的频度为:O(n²)平方阶(二重循环)

4.算法的存储空间需求
S(n)=O(F(n))
n为问题规模或者大小
5.原地工作:若额外空间相对于输入数据来说是常数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值