栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言数据结构——绪论

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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)

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/932125.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号