写在前面的话
本系列参考书目: 清华大学出版社 《数据结构》(C语言版)
第一章、绪论
数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等学科。
前言
记录自己重新学习数据结构(C语言版),谁让我是个菜鸡呢😭
一、基本概念与术语
下面将对一些概念和术语赋予以确定的含义
1.数据
数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中,并被计算机程序处理的符号的总称。😏
2.数据结果
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。😎
3.数据类型
数据类型是和数据结构密切相关的一个概念,它最早出现在高级程序语言中,用于刻画(程序)操作对象的特性。😳
4.算法
算法是对特定问题求解步骤的一种描述,它是指指令的有限序列,其中每一条指令表示一种或多个操作,此外,一个算法还具有下列五个重要特性。😆
🌟特性 | 🙋解释 |
---|---|
有穷性 | 一个算法必须总是对任何合法的输入值在执行有穷不之后结束,且每一步都可在有穷时间内完成。 |
确定性 | 算法中每一条指令必须有确切的含义,读者理解时不会产生二义性,并且在任何条件下,算法只有唯一的一条执行路径,且对于相同的输入只能得出相同的输出。 |
可行性 | 一个算法是能行的,及算法中描述的操作,都是可以通过已经实现的基本运算执行,有限次来实现的。 |
输入 | 一个算法有零个或多个的输入,这些输入取自于某个特定的对象的集合。 |
输出 | 一个算法有一个或多个的输出,这些输出是同输入有着某种特定关系的量。 |
5.算法设计的要求
通常设计一个“好”的算法应考虑达到以下目标。
⛳️目标 | 🙋解释 |
---|---|
正确性 | 算法应当满足具体问题的需求 |
可读性 | 算法主要是为了人的阅读与交流,其次才是机器执行 |
健壮性 | 当输入数据非法时,算法也能适当的做出反应或进行处理,而不会产生莫名其妙的输出结果 |
效率与低存储量需求 | 通俗的说,效率指的是算法执行的时间。 |
6.算法效率的度量
- 随着问题规模N的增大,算法执行时间的增长率和 f(n) 的增长率相同,称作算法的渐进时间复杂度,简称时间复杂度。
T ( n ) = O ( f ( n ) ) T(n)= O(f(n)) T(n)=O(f(n)) - 以空间复杂度作为算法所需存储空间的度量。简称空间复杂度。
S ( n ) = O ( f ( n ) ) S(n)= O(f(n)) S(n)=O(f(n))
总结
本章主要介绍了关于数据结构的基本知识,包含了数据、数据类型、数据结构、算法、算法分析的基本概念,采用大 O 形式表示时间或空间复杂度。