【数据结构】绪论
2023-12-22 17:20:40
一.数据
1.数据的定义:
关于事件之一组离散且客观的事实描述,是构成信息和知识的原始材料。
2.数据的组织:
数据并非杂乱无章的堆砌在一起,而是按照某种结构组织在一起的,比如线性的,层次的,或者网状的结构。
3.数据的可操作性:
对数据进行操作的方法就是“算法”
4.数据的存储结构:
- 顺序结构:把逻辑上相邻的元素存储在物理位置相邻的存储单元中
- 链式结构:在数据元素中添加一些地址域或辅助结构,用于存放数据元素之间的关系
- 索引结构
- 散列结构
5.数据的构成单位:
数据元素:
- 是数据中的一个“个体”
- 是数据结构中讨论的基本单位?
数据项:
- 是数据结构中讨论的最小单位
- 数据元素通常是数据项的集合?
6.抽象数据类型(Abstract Data Type,即:ADT)?
是指一个数学模型以及定义在此数学模型上的一组操作。
数据对象,数据关系,基本操作????????{D,R,O}
D:数据元素集
R:D上的关系集合
O:对D的基本操作集
7.算法设计的原则
1)正确性
2)可读性
3)健壮性
4)高效率与低存储量
?8.算法效率的衡量方法和准则
(1)与算法执行时间相关的因素
1)算法选用的策略
2)编写程序的语言
3)编译程序产生的机器代码的质量
4)计算机执行指令的速度
5)问题的规模
(2)算法效率的衡量方法和准则
1)事后统计法:
缺点:
必须执行程序
存在掩盖算法本质的其他因素?
2)事前分析估算法
一个特定算法的“运行工作量”的大小,只依赖于问题的规模(通常用整数n表示),或者说,它是问题规模的函数,记为f(n)。
假如,随着问题规模n的增长,算法执行时间的增长率和f(n)的增长率相同,则可以记为:
T(n)=O(f(n))
称O(f(n))为算法的时间复杂度
9.估算算法的运行工作量f(n)
使用执行基本操作次数来度量
(1)时间复杂度的估算规则:
1)运行工作量f(n)的低阶部分不会影响比较结果
2)f(n)的高阶部分的常数项也可以省略掉
算法的时间复杂度也称为渐进时间复杂度
(2)定理:
如果存在正的常数C和自然数,使得时,有,则称函数f(N)当N充分大时有上界,且g(N)是它的一个上界,记为
(3)运算规则:
(3)算法的空间复杂度定义为:
算法的存储量包括:
1)输入数据所占的空间
2)程序本身所占的空间
3)辅助变量所占的空间
(4)常见的复杂度:
常数阶:
对数阶:
线性阶:
线性对数阶:
多项式阶:
指数阶:
二.计算机问题求解的五个步骤
1.问题的理解
2.数据结构设计
3.算法设计
4.算法分析
5.程序测试与实现
程序=数据结构+算法
软件=程序+文档
文章来源:https://blog.csdn.net/Hsianus/article/details/135149662
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!