第一章    绪论

《数据结构》主要研究内容:

1、数据的各种逻辑结构物理结构,以及他们之间的相应关系

2、并对每种结构定义相适应的各种运算

3、设计出相应的算法

4、分析算法的效率

常见的数据结构有:数组、栈、队列、表、串、树、图、和文件等。

1.3    基本术语


数据(Data):  所有能被计算机处理的符号的集合。

数据元素(Data Element):  是数据这个集合中的一个个体。

设给定数据集合为:

D = {d1,d2,...., dn}   则di属于D,并称为di为数据元素。

 数据项(Data Item):  数据元素常常由若干个数据项组成,是数据的不可分割的最小单位。

数据对象(Data Object):  具有相同性质的数据元素的集合。

数据结构(Data Structure):是相互之间存在一种或多种特定关系的数据元素的集合。

形式定义为:数据结构是一个二元组  Data_Structure = (D,S)

其中:D是数据元素的有限集,S是D上关系的有限集。

逻辑结构(Logical Structure):指数据元素之间的结构关系。

(任何一个算法的设计取决于选定的数据(逻辑)结构)

物理结构(Physical Structure): 指数据结构在机内的表示(存储结构)。

(算法的实现依赖于采用的存储结构)

1.4    算法描述和算法分析

1、算法的概念:算法是一个有限的指令集,遵循指令流可以完成特定的功能。

2、算法的基本特性

有穷性:操作步骤有穷,每个步骤的运行时间有穷;

确定性:下一步必须是明确的;

可行性:每一步是可执行的;

输入:零个或多个输入;

输出:一个或多个输出。


3、算法设计的要求:正确性、可读性、健壮性、高效率和低存储量需求。


4、算法与程序的区别:

算法是解决问题的一种方法或一个过程,考虑如何将输入转换成输出,一个问题可以有多种算法。
程序是用某种程序设计语言对算法的具体实现。

主要区别:有穷性、正确性和描述方法

程序可以是无穷的,例如OS,算法是有穷的;

程序可以是错误的,算法必须是正确的;

程序是用程序设计语言描述,在机器上可以执行; 算法还可以用框图、自然语言等方式描述。

5、算法的度量方法 :事后统计方法(不科学、不准确)、事前分析估算方法。

6、函数的渐进增长 :给定两个函数 f(n) 和 g(n), 如果存在一个整数N,使得对所有的 n > N, f(n) 总是比 g(n), 那么,我们说 f(n) 的增长渐进快于 g(n)。

7、算法时间复杂度
在进行算法分析时,语句总的执行次数 T(n) 是关于问题规模 n 的函数, 进而分析 T(n) 随 n 的变化情况并确定 T(n) 的数量级。
算法的时间复杂度,也就是算法的时间度量,记作: T(n) = O(f(n))。它表示随问题规模 n 的增大, 算法执行时间的增长率和 f(n) 的增长率相同,称作算法的渐进时间复杂度,简称为时间复杂度。其中 f(n) 是问题规模 n的某个函数。(f(n) 是运行时间随 n 增大时的增长率 )
这样用大写O() 来体现算法时间复杂度的记法,我们称之为大O记法。

8、算法空间复杂度 :指空间需求。

9、推导大O阶
>  用常数1取代运行时间中的所有加法常数。
>  在修改后的运行次数函数中,只保留最高阶项。
>   如果最高阶项存在且不是1,则去除与这个项相乘的常数。
得到的结果就是大O阶。

常见的时间复杂度所耗时间的大小排列:

O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)

数据结构(严蔚敏、吴伟民)——读书笔记-1、绪论相关推荐

  1. 6-5-树的双亲表示法-树和二叉树-第6章-《数据结构》课本源码-严蔚敏吴伟民版...

    课本源码部分 第6章  树和二叉树 - 树的双亲表示法 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版) ...

  2. 4-2-串的堆存储结构-串-第4章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第4章  串 - 堆串 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解 ...

  3. 10-1-直接插入排序-内部排序-第10章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第10章  内部排序 - 直接插入排序 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课 ...

  4. 10-9-堆排序-内部排序-第10章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第10章  内部排序 - 堆排序 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码 ...

  5. 12-1-顺序文件归并-文件-第12章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第12章  文件 - 顺序文件归并 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源 ...

  6. 3-6-汉诺塔(Hanoi Tower)问题-栈和队列-第3章-《数据结构》课本源码-严蔚敏吴伟民版...

    课本源码部分 第3章  栈和队列 - 汉诺塔(Hanoi Tower)问题 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版> ...

  7. 7-5-无向图生成树-图-第7章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第7章  图 - 无向图生成树 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+ ...

  8. 10-12-顺序表地址排序-内部排序-第10章-《数据结构》课本源码-严蔚敏吴伟民版...

    课本源码部分 第10章  内部排序 - 顺序表地址排序 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版) ...

  9. 4-3-串的块链存储结构-串-第4章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第4章  串 - 块链串 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集 ...

  10. 10-10-归并排序-内部排序-第10章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第10章  内部排序 - 归并排序 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源 ...

最新文章

  1. TBtools - 超过一万人在使用的生信小工具
  2. CSS如何修改placeholder样式
  3. lua学习笔记之函数
  4. 玛纽尔扫地机器人怎样_扫地机器人怎样选?科沃斯超能王VS云鲸对比测试,看完你就懂了...
  5. python numpy库安装 mac_教程|如何在mac上为Python安装XGBoost!
  6. Django apache2 安装配置
  7. 字节流--IO学习笔记(二)
  8. C#判断某软件是否安装
  9. 在卷积层的运用_Conv 卷积层
  10. Pat乙级1011题:A+B和C
  11. java里面的三角函数
  12. io hang linux 原理,Linux 避免IO hang
  13. 软件开发团队中,凭什么新手当道?| 畅言
  14. h5 7个移动端框架
  15. 遗传算法优化SVM支持向量机分类预测的参数代码模型
  16. C盘爆红,一个操作将微信缓存踢走
  17. win7默认网关不可用_win7 默认网关不可用
  18. 怎么检测声音频率和幅值_作者特稿铝板塑性损伤的电磁超声非线性检测新方法...
  19. mysql-mmm高可用群集
  20. 栈 java 什么意思_java stack什么意思

热门文章

  1. 超实用的30 个简短的代码片段(一)
  2. 电通鬼十则(shifted)
  3. Xen Server虚拟机数据丢失的恢复过程
  4. 【老脸教你做游戏】小鸟飞过障碍物的游戏(下)
  5. AIGC 存储内容安全解决方案
  6. 通过两个案例,从C语言过渡到Java面向对象编程
  7. 关于重装完系统以后引导出错导致电脑无法开机的问题(File:\EFI\Microsoft\Boot\BCD,Error code:0xc000000f)
  8. PAT1050_乙级_螺旋矩阵
  9. iPhone 5s ----- 开创了手机新时代的一款产品
  10. 从零到壹-API研发管理心得分享