C语言数据结构——绪论

1.1 数据结构主要研究内容:

研究如何为从具体问题抽象出的数学模型设计一个算法,并为之编写程序。

记住:算法 + 数据结构 = 程序

1.2 基本概念和术语:

数据:所有能被输入到计算机的符号的统称。可以看成无数张二维表。

数据元素:数据的基本单位。可以看成二维表的一行。

数据项:组成数据元素的最小单位。可以看成二维表的一个单元。

数据对象:性质相同的数据元素的集合。可以看成一张二维表。

1.3 数据结构:

逻辑结构:描述数据元素之间的关系

1、线性结构:线性表,栈和队列,字符串,数组,广义表

2、集合结构

3、树结构:数和二叉树

4、图结构:有向图和无向图

物理结构:描述数据对象在计算机的存储结构

1、顺序结构:数据存储在一片连续的空间

2、线性结构:数据通过指针相连

1.4 抽象数据类型:

可以看成一个类或者结构体

1.5 时间复杂度:

时间复杂度用 n 来表示,n 越大,算法执行的时间越长

一条语句重复执行的次数为频度:

for (int i = 0; i < n; ++i)        //频度为 n
{
    for (int j = 0; j < n; ++j)    //频度为 n
    {...}
}

//f(n) = n*n
//时间复杂度为 O(n^2)

for (int i = 0; i < n; ++i)        //频度为 n
{
    for (int j = 0; j < 2; ++j)    //频度为 2
    {...}
}
//f(n) = 2*n
//时间复杂度为 O(n)

1.6 空间复杂度:

for (int i = 0; i < n; ++i)
    a[i] = t;
//只使用了一个 t ,空间复杂度为 O(1)

for (int i = 0; i < n; ++i)\
    a[i] = b[i];
//使用了大小为 n 的 b[n] , 空间复杂度为 O(n)

 通常,时间复杂度和空间复杂度呈反比,但由于存储空间充足,所以分析算法主要以时间复杂度为主。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值