数据结构和算法
第一章 什么是数据结构
目录
前言
“数据结构”是计算机相关专业的专业基础课程之一是一门十分重要的核心课程,主要学习用计算机实现数据组织和数据处理的方法。
一、什么是数据结构?
第一节 概论
重要的几个概论
-
数据:计算机加工的对象
- 比如:数字,字符,声音,光,图形,图像等均为数据。
-
信息:数据经过加工后,有用的数据。
-
数据和信息的关系
-
数据是信息的载体(信息以数据的形式发布出来的)
-
并不是所有数据都能形成的信息。
-
二、数据结构
定义
- 数据之间的关系
- 位置关系
- 特征关系
- 存储关系等
结点/元素
- 研究问题的对象
- 每个结点/元素均由数据组成
数据结构分为两大类
- 数据逻辑结构
- 数据之间外在的关系
- 线性结构
- 非线性结构
- 数据之间外在的关系
- 数据的物理结构
- 数据在计算机中的存储结构
- 顺序结构
- 非顺序结构
- 数据在计算机中的存储结构
三.数据结构的研究内容
- 研究数据的逻辑结构
- 研究数据的物理结构
- 研究他们之间的相互运算(算法)
四.日常生产活动中有三大数据结构(指逻辑结构)
- 线性表
- 线性结构数据
- 树结构
- 层次结构数据
- 图(网络)结构数据
第二节 算法及其时间复杂度
算法
-
定义
- 计算机解决问题的步骤(所研究问题的核心)
-
算法的描述方法
-
流程图(N-S结构图)
-
自然语言(汉语,英语等)
-
-
类语言(类似某种语言)
- 大部分类C语言
-
算法的五大特性
- 有穷性—一个算法的步骤是有限的
- 可行性—一个算法的每个步骤都是可执行的
- 确定性—一个算法的每个成分的含义是唯一的无二义性
- 输入性—一个算法有n个输入(n>=0)
- 输出性—一个算法有n个输出(n>0)
-
算法与程序的区别
- 算法是有穷的,而程序可以是无穷的
举例:累加的程序是无穷的
main()
{
float x,s=0;
L: scanf("%f",&x);
s=s+x;
printf ("x=%f,s=%f\n",x,s);
goto l;
}
- 程序是可执行的
- 在一般情况下算法是不可执行的
算法的时间复杂度
-
语句的频度
- 算法中语句的执行次数
-
语句的执行次数说明
for(i=1;i<=n;i++)
-
该循环的判别次数为n+1
-
循环体执行次数为n
-
选择语句执行次数为1次
-
赋值,输入,输出语句执行次数为1次
-
总结
以上是数据结构的基础大纲和概要!
下篇深入讲解具体知识,持续更新中!