数据结构与算法绪论

数据结构的研究内容

一般来说,使用计算机解决问题大致需要以下几个步骤:首先从具体问题中抽象出一个适当的数学模型,然后设计一个解此数学模型的算法,最后编写程序,进行测试和修改,直至得到最终解答。

数据结构的基本概念和相关术语

  1. 数据

数据是对客观事物的符号表示

  1. 数据元素

数据元素是数据中相对独立的基本单元,是数据中的一个个体.

  1. 数据对象

数据对象是性质相同的数据元素的集合,是数据的一个子集

  1. 数据结构

在客观世界中,任何事物和活动都不是孤立存在的,在一定程度上都会相互影响,相互联系,甚至相互制约。

根据数据元素之间关系的不同特性,通常有以下4类基本结构:

1)集合,即数据对象中的数据元素之间除了具有“同属于一个集合”的关系外,别无其它关系。
2)线性结构,即数据对象中的数据元素之间存在一对一的先后顺序关系。
3)树结构,即数据对象中的数据元素之间存在一对多的层次关系。
4)图结构,即数据对象中的数据元素之间存在多对多的任意关系。

数据结构可以形式化地描述为:数据结构是一个二元组

Data_Structure=(D,R
其中,D是数据元素的有限集;R是D上关系的集合。

数据的存储结构通常有以下几种

1)顺序存储结构
2)链式存储结构
3)索引存储结构
4)散列存储结构

  1. 数据类型和抽象数据类型

数据类型是与数据结构密切相关的一个概念。

抽象数据类型

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

算法与算法分析

程序数据结构算法

算法的概念

算法是对特定问题求解步骤的一种描述,是求解特点问题的一些指令的集合

一个完整的算法应具有以下几个基本特征

1)输入
2)输出
3)有穷性
4)确定性
5)可行性

算法效率和存储量的估算方法

1.算法效率的估算方法

算法的效率就是算法执行时间的多少

算法的时间复杂度与问题的规模规模n有关,因此常将它简记为T(n),它一定与问题规模n的某个函数f(n)同步增长。记为:
          T(n)=O(f(n))

例如,以下3个算法中含基本操作“x增1”的语句频度分别为1、n、n^2,因此,3个算法的时间复杂度分别为O(1)、O(n)、O(n^2),分别称为常量阶、线性阶和二次方阶。

1)++x;
2)for(i=0;i<n;i++){++x;sum+=x;}
3)for(i=0;i<n;i++)
     for(j=0;j<n;j++){++x;sum+=x;}

2.算法的存储空间估算

与算法的时间复杂度类似,算法运行所需的存储空间可以用空间复杂度(S(n))进行度量。算法的空间复杂度也是问题规模的函数,即:
           S(n)=O(f(n))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值