1.数据结构的研究

news2024/9/24 9:18:47

数据结构很重要!
数据结构很重要!!
数据结构很重要!! !

思考

1.数据结构研究的内容有哪些?(What)
2.为什么要研究数据结构? ? (Why)
3.如何更好的研究数据结构? ? ?(How)

注:特别感谢青岛大学王卓老师

一.数据结构的研究

在这里插入图片描述

1.早期,计算机主要用于数值计算

例1.求解梁架结构中的应力。

1.抽象出数学模型:KU=M
2.提取操作对象:矩阵、向量
3.操作对象之间的关系(方程):一个矩阵
一个未知的向量=一个向量
4.用数学语言表示:矩阵、向量,都用数组表示
解决:计算方法
特点:数据元素间关系简单,计算复杂

在这里插入图片描述

2.中期,计算机更多的用于非数值计算

例1.学生学籍管理系统

在这里插入图片描述

类似的还有图书管理系统、人事管理系统、仓库管理系统、通讯录
操作对象:若干行数据记录
操作算法:查询、增加、删除、修改等
操作对象之间的关系:线性关系
数据结构:线性数据结构,线性表

例2.人机对弈问题

在这里插入图片描述

操作对象:棋局状态
操作算法:走棋,选择一种策略使棋局状态发生变化(一个格局派生出另一个格局)
操作对象之间的关系
数据结构:

操作对象:目录
操作算法:查找目录
操作对象之间的关系:树
数据结构:
在这里插入图片描述

例3.地图导航-求最短路径

操作对象:各地点及路的信息
操作算法:设置信号灯,求出各个可同时通行的路的集合
操作对象之间的关系:非线性关系,网状结构
数据结构:
在这里插入图片描述

3.综述

要想有效地使用计算机,就必须学习数据结构
背景:数值计算,大多用在公式或方程,已经满足不了需求了
解决:出现非数值计算方法,如表,树,图之类具有逻辑关系的数据。
数据结构:一门研究非数值计算的程序设计中计算机的操作对象,以及他们之间的关系和操作

二.基本概念和术语

1.数据

在这里插入图片描述

2.数据元素

在这里插入图片描述

3.数据项

在这里插入图片描述

4.数据对象

在这里插入图片描述

5.数据元素与数据对象

在这里插入图片描述

6.数据结构

在这里插入图片描述
在这里插入图片描述

7.逻辑结构&存储结构

在这里插入图片描述

1.逻辑结构的种类

划分1:
在这里插入图片描述

划分2:
在这里插入图片描述

2.存储结构的种类

在这里插入图片描述

1.顺序存储结构

在这里插入图片描述

2.链接存储结构

一个存储存储单元:元素+下一个元素地址
在这里插入图片描述

3.索引存储结构

在这里插入图片描述

4.散列存储结构

在这里插入图片描述

三.数据类型和抽象数据类型

1.基本数据类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.抽象数据类型(Abstract Data Type ,ADT)

抽象:从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征的过程。反映事物的本质和规律的方法。
抽象数据类型:
1.从具体问题中抽象出来的一个数学模型,以及在数学模型上的一组操作。
2.不考虑计算机内的具体存储结构与运算的具体实现算法。

1.圆
舍弃:大小、颜色
圆的抽象定义:到每个点的距离相等的点的集合
运算:构造园、求面积、求周长
在这里插入图片描述

2.复数
抽象实质:实部+虚部i
操作:+、-、*、/
在这里插入图片描述

3.形式定义
具体问题—》抽象成数据类型
简洁严谨文字描述:形式定义
在这里插入图片描述

D是数据对象
S是数据对象上关系的集合,数据和数据关系很多,构成一个集合
P是对数据和数据关系操作的集合
4.定义格式
在这里插入图片描述

操作结果:
在这里插入图片描述

5.定义举例
1.Circle的定义
在这里插入图片描述

2.复数的定义
在这里插入图片描述
在这里插入图片描述

3.总结

在这里插入图片描述
在这里插入图片描述

四.抽象数据类型的表示与实现

1.抽象数据类型

在这里插入图片描述

2.C语言实现抽象数据类型

在这里插入图片描述
在这里插入图片描述

3.抽象数据类型“复数”实现

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

五.算法和算法分析

1.算法的定义

在这里插入图片描述

2.算法的描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.算法与程序

在这里插入图片描述

4.算法特性

1.有穷性:步骤、时间有穷,最后结束
2.确定性:算法中的每一条指令必须有确切的含义,没有二义性。多次执行输出结果一样。
3.可行性:操作可以通过已经实现的基本操作执行有限次来实现。
4.输入:一个算法有零个或多个输入。
5.输出:一个算法有一个或多个输出。

5.算法设计要求

1.正确性:算法满足问题要求,能正确解决问题

在这里插入图片描述

2.可读性:算法主要是为了人的阅读和交流,计算机只用来执行。

在这里插入图片描述

3.健壮性(鲁棒性):处理出错的方法,不应是中断程序的执行,而是返回一个表示错误或错误性质的值

在这里插入图片描述

4.高效性:要求花费尽量少的时间和尽量低的存储需求

在这里插入图片描述

6.算法和算法分析

在这里插入图片描述

所以,要根据问题实际需要,综合平衡有所侧重,结合计算机的性能,数据量大小。

1.算法时间效率度量

在这里插入图片描述

2.事前分析方法

算法运行时间=一种简单操作所需的时间*简单操作次数
也即算法中每条语句的执行时间之和
*算法运行时间=每条语句的执行次数(累加)该语句执行一次所需的时间
在这里插入图片描述

背景:每条语句执行一次所需的时间,一般是随机器而异的。取决于机器的指令性能、速度以及编译的代码质量。
由机器本身软硬件环境决定的,它与算法无关。
解决:所以,我们可以假设执行每条语句所需的时间均为单位时间。
结果:算法运行时间=每条语句频度之和。

在这里插入图片描述

3.例子:俩个n*n矩阵相乘的算法可描述为

在这里插入图片描述

背景:便于比较,仅比较他们数量级,去除系数。

4.O(f(n)):算法渐进时间复杂度,简称时间复杂度

在这里插入图片描述

背景:一般情况下,不必计算所有操作的执行次数,只考虑算法中基本操作执行的次数(既然找数量级,只找贡献时间最大的语句)。

在这里插入图片描述

5.渐进时间复杂度意义

在这里插入图片描述

1.基本语句重复执行的次数:

● 算法中重复执行次数和算法的执行时间成正比语句
● 对算法运行时间贡献最大,执行次数最多
在这里插入图片描述

2.问题规模n:n越大算法的执行时间越长
在这里插入图片描述

6.分析算法时间复杂度的基本方法

找最高次项,数量级最大的运算。
在这里插入图片描述

基本语句:语句频度最大的那条语句
1.找出嵌套最深的那条语句
2.求出f(n)多项式(核心的一步)
3.找出f(n)最大项级,然后等于O(f(n))

在这里插入图片描述

1.时间复杂度是由嵌套最深语句的频度决定的

在这里插入图片描述

2.例子1:N*N矩阵相乘

在这里插入图片描述

3.例子2:三层for循环

在这里插入图片描述

3.例子3:分析以下程序段的时间复杂度

关键:找出来执行次数X与N的关系,并表示成n的函数
在这里插入图片描述

7.算法时间复杂度计算

在这里插入图片描述

8.算法时间复杂度

在这里插入图片描述

在这里插入图片描述

9.算法时间效率的比较

在这里插入图片描述

10.渐进空间复杂度

在这里插入图片描述

1.例子:一维数组逆序存放原数组

在这里插入图片描述

在这里插入图片描述

六.知识回顾

在这里插入图片描述

1.数据结构研究的内容有哪些?(What)

1.1基本概念和术语

1.数据结构

提取操作对象,找出操作对象之间的关系。

2.案例

学生学籍管理系统
对象:记录
关系:线性关系:
算法:增删查改

3.数据的定义

能输入计算机且能被计算机处理,的各种符号的集合。
数据是一种信息的载体,是对客观事物符号化的表示,能够被计算机识别、存储、加工。
分类:
1.数值型数据:整型、实数等
2.非数值数据:文字、图形、图像、声音等

4.数据元素

数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
简称元素,或称为记录、节点、顶点。

5.数据项

构成数据元素不可分割的最小单位。
就是一张表中字段中的数据。

6.数据、数据元素、数据项之间的关系

数据项是数据元素集合的子集
数据元素是数据集合的子集

7.数据元素与数据对象

1.数据元素:组成数据的基本单位
○ 与数据的关系:是集合的个体
2.数据对象:性质相同的数据元素的集合
○ 与数据的关系是:集合的子集

8.数据结构内容

数据结构
a. 结构:数据元素不是孤立存在的,它们之间存在着某种关系,数据元素相互之间的关系称为结构
b. 相互之间存在一种或多种特定关系的数据元素集合
c. 数据结构是带结构的数据元素的集合

内容
a. 逻辑结构:数据之间存在逻辑关系
b. 物理结构:数据元素及其关系在计算机内存中的映像
c. 数据的运算与实现:对数据元素可以施加操作,以及这些操作相应存储在计算机内存当中。

9.逻辑结构&存储结构

1.逻辑结构
a. 描述数据元素之间的逻辑关系
b. 与数据的存储无关,独立于计算机
c. 是从具体问题抽象出来的数据模型

2.物理结构(存储结构)
数据元素及其关系在计算机存储器中的结构

3.逻辑结构与存储结构的关系
逻辑结构是数据结构的抽象,存储结构是数据结构的实现
二者综合起来建立了数据元素之间的结构关系

10.逻辑结构的种类

划分1:
(1)线性结构
有且只有一个开始和一个终端节点,并且所有结点都最多只有一个直接前驱和一个直接后继。
例如:线性表、栈、队列、串

(2)非线性结构
一个节点可能有多个直接前趋和直接后继
例如图

划分2:
(1)集合结构:同属于一个集合
(2)线性结构:元素之间存在一对一的线性关系
(3)树形结构:数据元素之间存在着一对多关系
(4)图、网状结构:数据元素存在多对多关系

11.存储结构的种类

  1. 顺序存储
    一组连续的存储单元依此存储数据元素,数据之间的逻辑关系由存储位置来表示。
    C语言中用数组来实现顺序存储结构。
  2. 链式存储
    用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针来表示。
    C语言中用指针来实现链式存储结构。
  3. 索引存储
    存储结点信息的同时,还建立附加索引表。
    索引项:关键字,地址,能唯一标识一个结点的那些数据项。
    稠密索引:每个结点在索引表中都有一个索引项。
    稀疏索引:一组结点在索引表中只对应一个索引项。
  4. 散列存储
    根据结点的关键字直接计算出该结点的存储地址。

1.2基本数据类型和抽象类型

1.基本数据类型

数据类型:C语言中:
基本数据类型:int,char,float,double
构造数据类型:数组,结构体,枚举,共用体
指针、空(void)类型

用户也可以用typedef自己定义数据类型
基本的数据结构可以用数组,字符串。

数据类型的作用:
1.约束变量或常量的取值范围(int,char)
2.约束变量或常量的操作(+ - * /)
不能直接用数据类型表示的,还有另外一些数据结构:栈、队列、树、图。

数据类型:一组性质相同的值的集合,定义与这个值集合上的一组操作总称。
数据类型=值的集合+值集合上的一组操作。

2.抽象数据类型

抽象:反映事物的本质和规律的方法。
抽象数据类型:
1.从具体问题中抽象出一个数学模型,以及在数学模型上的一组操作
2.不考虑计算机内的具体存储结构与运算具体实现算法
例子:
舍弃:大小、颜色

圆的抽象定义:到每个点的距离相等的点的集合
运算:构造园、求面积、求周长

3.形式定义

具体问题—》抽象成数据类型
形式定义:简洁严谨文字描述
D是数据对象
S是数据对象上关系的集合,数据和数据关系很多,构成一个集合
P是对数据和数据关系操作的集合

4.定义格式

ADT 抽象数据类型名{
数据对象<数据对象的定义>
数据关系<数据关系的定义>
基本操作<基本操作的定义>
} ADT 抽象数据类型名

基本操作定义格式:
基本操作名(参数表:提供输入值,引用参数&打头,能将返回操作结果)
初始条件:(初始条件描述:若满足,执行下一步,反之)
操作结果:(操作结果描述:变化状况应返回)

5.定义举例

ADT 抽象数据名{
Data
数据对象的定义
数据元素之间逻辑关系的定义
Operation
操作1
初始条件
操作结果描述
操作2
初始条件
操作结果描述
}

1.Circle的定义
ADT Circle{
数据对象:D={r,x,y|r,x,y均为实数}
数据关系:R={<r,x,y>|r是半径,<x,y>是圆心坐标}
基本操作:
Circle(&C,r,x,y)
操作结果:构造一个圆
double Area©
初始条件:圆已存在
操作结果:计算面积
}ADT Circle

2.复数的定义
ADT Complex{
数据对象:D={r1,r2|r1,r2都是实数}
数据关系:R={<r1,r2>|r1是实部,r2是虚部}
基本操作:
assign(&C,v1,v2)
初始条件:空的复数C已存在
操作结果:构造复数C,r1,r2分别被赋以v1,v2
destroy(&C)
初始条件:复数C以存在
操作结果:复数C被销毁
}ADT Circle

GetReal(Z,&realPart)
初始条件:复数以存在。操作结果:用realPart返回复数Z的实部值。
GetReal(Z,&ImagPart)
初始条件:复数以存在。操作结果:用ImagPart返回复数Z的虚部值。
Add(Z1,Z2,&sum)
初始条件:Z1,Z2都是复数。操作结果:sum返回俩个复数Z1,Z2的和。

6.总结

在这里插入图片描述

1.3抽象数据类型的表示与实现

1.抽象数据类型
一个问题抽象为一个抽象数据类型

2.C语言实现抽象数据类型
用已有数据类型、函数定义表示操作

3.抽象数据类型“复数”实现
typedef struct{
float realpart;
float imagpart;
}Complex
void assign(Complex *A,float real,float imag);
void add(Complex *C,Complex A,Complex B);

void assign(Complex *A,float real,float imag){
A->realpart=real;
A->imagpart=imag;
}
void add(Complex *C,Complex A,Complex B){
C->realpart=A.realpart+B.realpart;
C->imagpart=A.imagpart+A.imagpart;
}

#include<stdio.h>
int main(){
Complex z1,z2,z3,z4,z;
float realpart,imagpart;
assign(z1,8.0,7.5); //构造复数z1
assign(z2,6.0,9.5); //构造复数z2
add(z3,z1,z2); //俩个复数相加
multiply(z4,z1,z2); //俩个复数相乘
if(divide(z,z1,z2)){
GetReal(z,realpart);
GetImag(z,imagpart);
}
return 0;
}

1.4算法和算法分析

1.算法的定义
对特定问题求解方法和步骤的一种描述,它是有限的指令序列。
每一个指令表示一个或多个操做。

2.算法的描述
自然语言:英文、中文
流程图:传统流程图、NS流程图
伪代码:类C语言
程序代码:C,Java语言

3.算法与程序
算法:解决问题的一种方法或一个过程,考虑如何将输入转换成输出,一个问题可以有多种算法。
程序:用某种程序设计语言对算法的具体实现
程序=数据结构+算法
数据结构通过算法来实现操作
算法根据数据结构设计程序

4.算法特性

  1. 有穷性:步骤、时间有穷,最后结束
  2. 确定性:没有二义性,每次输入一样的,最后都能得到一样的结果
  3. 可行性:可以实现的操作
  4. 输入:可以有0个或多个输入
  5. 输出:有一个或多个输出

5.算法设计要求

  1. 正确性:满足程序要求,能正确解决问题
  2. 可读性:算法主要是为了人的阅读和交流,其次才是为了计算机执行,因此算法应该易于人的理解
  3. 健壮性:进行错误处理,而不是直接终端程序的执行
  4. 高效性:要求花费尽量少的时间和尽量低的存储需求

6.算法和算法分析
正确性->健壮性->可读性->算法的效率

算法的效率:
1.时间效率:算法执行过程中所耗费的时间
2.空间效率:算法执行过程中所耗费的存储空间

注:要根据实际问题需求,综合平衡,有所侧重,结合计算机的性能,数据量大小。

2.为什么要研究数据结构? ? (Why)

2.1为什么研究数据结构?

1.时间推移

随着计算机产业的发展应用领域,数值计算领域已经不能满足了(纯粹的数值计算)
非数值计算领域的需求量大增,产生了很多新的、杂乱无章的数据、具有一定结构的数据需要处理。比如(声音、图片、视频、字符…)

开始处理这些杂乱无章的数据:
逻辑结构:数据元素对象及其之间的关系
存储结构:数据对象及关系映射存储到计算机中
算法:实现数据对象之间的“运算”关系。

2.传统数据类型数据范围和操作有一定限制

如果数据类型表示的不合适,那么可以选择另外一些数据结构:栈、队列、树、图。

2.2为什么要研究基本概念和术语?

只有清晰知道基本概念,才能更好的学习数据结构
基本概念:

  1. 数据
  2. 数据元素
  3. 数据项
  4. 数据对象
  5. 数据元素和数据对象
  6. 数据结构
  7. 逻辑结构&存储结构

数据类型:

  1. 基本数据类型
  2. 抽象数据类型

算法:

  1. 算法的定义
  2. 算法的描述
  3. 算法与程序
  4. 算法特性
  5. 算法设计要求

3.如何更好的研究数据结构? ? ?(How)

搞清楚,基本的数据定义,扎实基础。

用心
用心、用心
用心、用心、用心

知其然、知其所以然!!!

多学习,多思考,多总结,多输出,多交流 (five kills)~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/400340.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hadoop小结

Hadoop是什么Hadoop是一 个由Apache基金 会所开发的分布式系统基础架构。主要解决,海量数据的存储和海量数据的分析计算问题。广义上来说&#xff0c;Hadoop通 常是指一个更广泛的概念一Hadoop 生态圈。Hadoop优势Hadoop组成HDFS架构Hadoop Distributed File System&#xff0c…

蓝桥杯--ISBN号码

ISBN号码 技巧 数字转为字符【数字‘0’】 字符转为数字【字符-‘0’】 这道题比较简单 题目大意 每一本正式出版的图书都有一个 ISBN 号码与之对应&#xff0c;ISBN 码包括 9 位数字、1 位识别码和 3 位分隔符&#xff0c;其规定格式如 “x-xxx-xxxxx-x”&#xff0c;其中符号…

java多线程(二四)java多线程基础总结

一、进程与线程 1.进程 进程是操作系统结构的基础&#xff1b;是一次程序的执行&#xff1b;是一个程序及其数据在处理机上顺序执行时所发生的活动。操作系统中&#xff0c;几乎所有运行中的任务对应一条进程&#xff08;Process&#xff09;。一个程序进入内存运行&#xff…

前装L2标配车型均价连续第二年「低于」L1,市场进入爆发期

L2级辅助驾驶&#xff0c;正在进入市场红利期。 高工智能汽车研究院监测数据显示&#xff0c;2022年度中国市场&#xff08;不含进出口&#xff09;乘用车前装标配搭载辅助驾驶&#xff08;L0-L2&#xff09;交付1001.22万辆&#xff0c;首次突破千万辆规模&#xff0c;同时&a…

带你玩转spring声明式事务-使用中需要注意的点

本文向大家介绍spring声明式事务使用过程中需要注意的地方。事务特性1. 原子性&#xff08;Atomicity&#xff09;事务是一个原子操作&#xff0c;由一系列动作组成。事务的原子性确保动作要么全部完成&#xff0c;要么完全不起作用。2. 一致性&#xff08;Consistency&#xf…

九龙证券|6G概念重新活跃 数字经济板块引领A股尾盘回升

周三&#xff0c;沪深两市缩量调整&#xff0c;沪指全天以弱势震荡为主&#xff0c;尾盘在数字经济概念带动下快速拉升&#xff0c;全天微跌0.06%&#xff0c;报3283.25点&#xff1b;深证成指跌落0.09%&#xff0c;报15598.29点&#xff1b;创业板指跌落0.26%&#xff0c;报23…

[算法]归并排序

参考&#xff1a;《漫画算法-小灰的算法之旅》 目录 参考&#xff1a;《漫画算法-小灰的算法之旅》 1、什么是归并排序 2、归并的具体操作 3、代码 4、时间复杂度和空间复杂度 5、归并排序是稳定排序 1、什么是归并排序 归并排序就像是组织一场元素之间的“比武大会”&…

【C++】30h速成C++从入门到精通(二叉树)

说明为什么要在C当中单独再次提及数据结构中的二叉树&#xff1a;map和set特性需要先铺垫二叉搜索树&#xff0c;而二叉搜哦书也是一种树形结构二叉搜索树的特性了解&#xff0c;有助于更好的理解map和set特性二叉树中部分面试题有难度有些OJ使用C语言实现比较麻烦二叉搜索树概…

Kubernetes14:Helm为了部署像微服务这种的大型项目

Kubernetes14&#xff1a;Helm介绍&#xff08;为了部署像微服务这种的大型项目&#xff09; 1、Helm的引入 (1)之前方式部署应用基本过程 编写yaml文件 1、deployment kubectl create deployment nginx --imagenginx --dryrun -o yaml > nginx.yaml2、Service kubect…

Web前端:前端开发人员的职责有哪些?

前端开发&#xff0c;就是要创造上面提到的网站面向用户的部分背后的代码&#xff0c;并通过建立框架&#xff0c;构建沉浸性的用户体验。前端工程师还需要确保网站在各种浏览器和设备上都能正常运行&#xff0c;并且能够根据用户需求不断优化和改进网站。前端开发人员的角色和…

【C语言进阶】文本与二进制操作文件,优化通讯录。

前言&#xff1a;上篇文章&#xff0c;我们已经学习了有关本地磁盘文件的常用文件操作&#xff0c;已经能够对本地文件进行调用与读写。我们磁盘中还存在着一些内容用二进制存储的文件&#xff0c;这也就是我们今天将要讲解的内容。一、文本文件与二进制文件根据数据的组织形式…

SpiderFlow爬虫获取网页节点

SpiderFlow爬虫获取网页节点 一、SpiderFlow 文档地址&#xff1a;https://www.spiderflow.org/ 二、问题&#xff1a;获取一篇文章的标题、来源、发布时间、正文、下载附件该怎么获取&#xff1f; 举例&#xff1a;【公示】第三批智能光伏试点示范名单公示 三、抓取网页步骤…

Heatmap-based Out-of-Distribution Detection 论文阅读

原文地址 概要 我们的工作将分布失调【out-of-distribution,OOD】检测作为神经网络输出解释问题进行研究。我们学习了一种热图【heatmap】表示&#xff0c;用于检测OOD图像&#xff0c;同时可视化ID和OOD的图像区域。给定一个训练过的固定分类器&#xff0c;我们训练一个解码…

ArrayList源码分析(JDK17)

ArrayList类简介类层次结构构造无参构造有参构造添加元素add&#xff1a;添加/插入一个元素addAll:添加集合中的元素扩容mount与迭代器其他常见方法不常见方法不常见方法的源码和小介绍常见方法的源码和小介绍积累面试题ArrayList是什么&#xff1f;可以用来干嘛&#xff1f;Ar…

funkyheatmap | 用这个包来完美复刻Nature Biotechnology的高颜值神图吧!~

1写在前面 天气开始暖和了☀️&#xff0c;发现旅游的人好多啊&#xff01;~&#x1f972; 不知道自己什么时候能有时间出去看看外面的世界&#xff0c;实在是太忙了。&#x1f637; 最近用到的有个包感觉很不错&#xff0c;分享给大家&#xff0c;funkyheatmap包。&#x1f61…

进程与多线程(入门)

什么是线程 要了解什么是线程&#xff0c;得先知道什么是程序。 程序&#xff1a;为完成特定任务&#xff0c;用某种语言编写的一组指令的集合。 例如&#xff0c;QQ&#xff0c;Steam&#xff0c;亦或者java写的helloword。 这些都是程序 了解了程序&#xff0c;还得清楚什么…

d3.js绘制饼状图,悬浮出现字以及点击事件

代码以及注释如下&#xff1a; const width 300; // 定义圆的宽度 const height 300; // 定义圆的高度 const radius Math.min(width, height) / 2; // 算出半径 const color d3.scaleOrdinal() .range(["#98abc5", "#8a89a6", "#6b486b&qu…

【MySQL高级篇】第05章_存储引擎

第05章_存储引擎 1. 查看存储引擎 查看mysql提供什么存储引擎 show engines;2. 设置系统默认的存储引擎 查看默认的存储引擎 show variables like %storage_engine%; #或 SELECT default_storage_engine;修改默认的存储引擎 如果在创建表的语句中没有显式指定表的存储引擎…

一分钟成为签到达人!Redis BitMap轻松解决,Spring Boot带你飞

如何实现签到功能&#xff0c;尤其是如何实现高效的签到与统计&#xff0c;是开发者们需要考虑的问题。在本篇文章中&#xff0c;我们将介绍如何利用Spring Boot整合Redis BitMap实现签到与统计。 Redis BitMap简介 在介绍如何利用Redis BitMap实现签到与统计之前&#xff0c;…

unity动画--动画绑定,转换,用脚本触发

文章目录如何制作和添加动画大概过程示例图将多组图片转化为动画放在对象身上实现动画之间的切换使用脚本触发Parameters(Trigger)如何制作和添加动画 大概过程示例图 将多组图片转化为动画放在对象身上 首先&#xff0c;我们要为我们要对象添加animator 然后我们要设置对应的…