2021-07-13数据结构基本概念+算法基本概念+算法效率的两种度量笔记

前言
农业阶段–工业阶段–信息化阶段

数据结构在学什么:
a.如何用程序代码把现实世界的问题信息化
b.如何用计算机高效地处理这些信息,从而创造价值

生活中的实例:
零钱通里的零钱比如110.98这个数字就是浮点型float,微信小程序吃饭取餐号队列数组原理,csdn里的粉丝数与关注用到图结构

疑问(以后掌握更多知识解决):发散思考:我关注的一个up主,他的视频是怎么通过网络让我看到,背后的原理是什么,以及用户这么多,信息如何存储。

计组(硬件)手机/计算机–操作系统–数据结构(软件)
计算机网络实现每个计算机之间联系

1.数据结构基本概念
我的csdn主页可以是一个数据元素,而其中的性别,昵称,等则为数据项,而生日还涉及年月日,则称为整合项,所有的csdn用户(数据元素的集合)称为数据结构(存在关系)

数据结构是特定关系:某个特定门店排队顾客信息和他们之间的关系(中国csdn所有账号及账号之间的关系)
数据对象是相同性质:全国所有门店的排队顾客信息((貌似国外没有csdn,据说仿微软MSDN),csdn所有账户的信息)

数据结构的逻辑结构:
a.集合(无关系)比如烤盘上的各种烤肉
b.线性结构(一对一):冰糖葫芦
c.树形结构(一对多):C盘文件
d.图结构(多对多):微信好友

数据结构的物理结构(存储结构):
a.顺序存储
b.链式存储(指针)
c.索引存储(关键字+地址)
d.散列存储(哈希存储,关键字计算)

存储结构的影响:
1,存储空间分配的方便程度
2,对数据运算的速度

运算的定义针对逻辑结构
运算的实现针对存储结构

数据结构三要素:存储结构,逻辑结构,运算

数据类型//一个值的集合+定义此集合上的一组操作
1)
bool类型
原子类型:true false 与 或 非
int类型
-2147483648–2147483647
模运算,+,-,*,/
2)
结构类型 typedef struct…
ADT(abstract data type):抽象数据类型–数学化语言定义逻辑结构,运算,与具体实现无关

小结关键字:数据元素,数据项,数据对象,数据结构,4个逻辑结构,4个物理结构,数据结构三要素,两个数据类型,运算的定义,运算的实现

2.算法的基本概念
程序=数据结构+算法
比如一个奶茶门店排队系统已实现的操作如下:【数据结构(信息化+操作)】
①对头元素入队②新元素入队(在头元素后面,此队非彼队)③输出队列长度④交换第i号和第j号位置
算法:解决实际问题
比如带小孩顾客优先
先②后④即交换与排在第一个顾客位置

算法特点:
算法又穷,程序无穷
算法具有确定性,同输入则同输出
算法可执行性,基本运算执行有限次
必有输出,可无输入

好的算法:
1)正确性
2)可读性
3)健壮性(能处理异常状况)
4)高效率与低存储量需求
执行速度快,时间复杂度低
不费内存·,空间复杂度低

应用:
查找应用:搜索引擎,高性能数据库
排序应用:Excel 操作系统进程调度 搜索引擎搜索结果显示

小结关键字:算法四个特性,好的算法四个特点,两个应用,查找应用,排序应用

3.算法效率的两种度量
算法的时间复杂度:
事前预估算法时间开销T(n)(time)与问题规模n的关系
加法规则:只考虑阶数高的部分且系数变为一(泰勒公式)
多项相乘:都保留

一般考虑最坏时间复杂度,平均时间复杂度

时间复杂度排序
O(1)<O(㏒₂n)<O(n)<O(n㏒₂n)<O(n²)<O(n³)<O(2的n次方)<O(n!)<O(n的n次方)(没找到n次方在哪儿,请评论告知,谢谢~)常对幂指阶

算法的性能问题只有在n很大时才会暴露出来

算法的空间复杂度:
S(n)space
程序代码在内存大小固定,与问题规模无关,则是S(1)
只需关注存储空间大小与问题规模相关的变量
空间复杂度=递归调用的深度

1+2+3+…‥n=1/2n²+n/2

小结关键字:时间复杂度,空间复杂度,时间复杂度大小排序,常对幂指阶,关注问题规模,递归调用深度,事先预估,加法法则,乘法法则

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尾迹双冒号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值