数据结构一:绪论
(一)数据结构的基本概念
1.相关名词

【1】数据
1.信息的载体,描述客观事物
2.能被输入到计算机中
3.能被计算机程序识别和处理的符号的集合。
【2】数据元素
1.数据的一个“个体”
2.数据的基本单位
3.有时候也被称为元素、结点、顶点、记录等,这时候用于完整描述一个对象。ex:一条学生记录
【3】数据项
1.组成数据元素具有特定意义不可分割的最小单位
2.数据元素是数据项的集合
3.比如说在学生信息表中的一条学生记录(数据元素)中这个学生的学号或者性别这些都是数据项
【4】数据对象
1.具有相同性质的数据元素的集合
2.是数据的一个子集
【5】数据结构:通过抽象方法研究一组具有特定关系的数据的存储和处理,主要研究三个方面(三要素):逻辑结构、存储结构和数据运算。
2.数据结构的三要素=逻辑结构+存储结构+数据运算
【1】逻辑结构
有2种划分方式:1.按照线性和非线性分 2.按照结构分
1.线性和非线性
(1)线性:线性表、栈和队列、字符串、数组和广义表
(2)非线性:树和图
2.结构分(4种)
(1)集合结构:在同一个集合中,它们之间无关系
(2)线性结构:任意一个元素之间有且仅有一个前驱和后继,1对1
(3)树形结构:有一个前驱多个后继,1对多
(4)图形结构:有多个前驱多个后继,多对多
【2】存储结构(存储的逻辑结构4种):顺序、链式、索引、散列(哈希)
*索引:类似课本目录,每页都有页码i,检索时利用结点(页)的顺序号i确定位置
*散列:也称哈希存储,用哈希函数将数据元素按照关键字和唯一的存储位置关联
【3】数据运算:插入、删除、查找、修改、排序等
(二)算法和算法分析
1.算法的基本概念
1.指令的有限序列
2.可以用自然语言描述
3.算法具有5个重要特性:有穷、确定、可行、输入输出
*有穷:步骤和执行时间有限
*确定:有确切含义、无二义、只有唯一的一条执行路径(对于相同的输入有唯一的执行结果)
*可行:执行有限次实现
*输入:0或多个
*输出:1或多个(最少1个结果)
4.算法和程序是两个不同的概念(区别)
*执行时间:算法步骤有限(有穷性),程序无限次执行
*语言描述:程序必须用规定语言,算法无限制可自然语言。
5.算法的基本目标:正确、易读、健壮、高效率
*健壮:当环境发生变化(非法输入)时候可以适当做出反应或者处理,不会产生不正确的结果
*高效率:较高的时间(用时少)和空间性能(占用空间少)
6.算法的评价方法:事前分析、事后统计
2.算法的时间和空间性能分析
【1】时间复杂度
1.T(N)表示该算法时间耗费,N为求解问题的规模
2.当N趋向于无穷时候,仅考虑数量级(阶),就是算法的渐进时间复杂度,用大o表示法
3.大o表示法就是忽略系数,类似数学的“抓大头”
4.语句频度:重复执行的次数
【2】用大o表示法求解算法的渐进时间复杂度(有6类)
1. 常量阶 O(1):算法的执行时间不随输入数据的规模n变化,即无论输入数据有多大,算法的执行时间都是固定的。这类算法通常只包含基本操作,如赋值、比较等。
2. 对数阶 O(log n):算法的执行时间随输入数据的规模n的对数增长。这类算法通常涉及到二分搜索或树结构的深度遍历。
3. 线性阶 O(n):算法的执行时间随输入数据的规模n线性增长。这类算法通常涉及到对数据的顺序访问,如数组或列表的遍历。
4. 平方阶 O(n^2):算法的执行时间随输入数据的规模n的平方增长。这类算法通常涉及到两层嵌套循环,如矩阵的乘法或对数组的每个元素进行比较。
5. 线性对数阶 O(n log n):算法的执行时间是输入数据的规模n与对数的乘积。这类算法通常涉及到排序操作,如快速排序或归并排序。
6. 立方阶 O(n^3):算法的执行时间随输入数据的规模n的立方增长。这类算法通常涉及到三层嵌套循环,如矩阵乘法的直接实现。
相关文章:
数据结构一:绪论
(一)数据结构的基本概念 1.相关名词 【1】数据 1.信息的载体,描述客观事物 2.能被输入到计算机中 3.能被计算机程序识别和处理的符号的集合。 【2】数据元素 1.数据的一个“个体” 2.数据的基本单位 3.有时候也被称为元素、结点、顶点…...
使用OpenFeign在不同微服务之间传递用户信息时失败
文章目录 起因原因解决方法: 起因 从pay-service中实现下单时,会调用到user-service中的扣减余额。 因此这里需要在不同微服务之间传递用户信息。 但是user-service中始终从始至终拿不到user的信息。 原因 在pay-service中,不仅要Enable O…...
js中【Worker】相关知识点详细解读
什么是 JavaScript 中的 Worker? JavaScript 中的 Worker 是一个可以在后台线程中运行代码的 API,这样可以避免主线程(通常是 UI 线程)被阻塞。使用 Worker 时,JavaScript 可以在多线程环境中工作,解决了单…...
使用Apify加载Twitter消息以进行微调的完整指南
# 使用Apify加载Twitter消息以进行微调的完整指南## 引言在自然语言处理领域,微调模型以适应特定任务是提升模型性能的常见方法。本文将介绍如何使用Apify从Twitter导出聊天信息,以便进一步进行微调。## 主要内容### 使用Apify导出推文首先,我…...
【C++算法】滑动窗口
长度最小的子数组 题目链接: 209. 长度最小的子数组 - 力扣(LeetCode)https://leetcode.cn/problems/minimum-size-subarray-sum/description/ 算法原理 代码步骤: 设置left0,right0设置sum0,len0遍历l…...
(c++)猜数字(含根据当前时间生成伪随机数代码)
#include<iostream> #include<ctime>/*用srand((unsigned int)time(NULL));要包含这个头文件,如果没有这两个,rand()函数会一直生成42这个伪随机数。*/using namespace std;int main() {srand((unsigned int)time(NULL));//种子,…...
优化批处理流程:自定义BatchProcessorUtils的设计与应用
优化批处理流程:自定义BatchProcessorUtils的设计与应用 | 原创作者/编辑:凯哥Java | 分类:个人小工具类 在我们开发过程中,处理大量的数据集是一项常见的任务。特别是在数据库操作、文件处理或者…...
Framebuffer应用编程
目录 前言 LCD操作原理 涉及的 API 函数 open函数 ioctl 函数 mmap 函数 Framebuffer程序分析 源码 1.打开设备 2.获取LCD参数 3.映射Framebuffer 4.描点函数 5.随便画几个点 上机实验 前言 本文介绍LCD的操作原理和涉及到的API函数,分析Framebuffer…...
MongoDB根据字段内容长度查询语句
db.getCollection("qlzx_penalties_business_raw").find({$expr: {$lt: [{ $strLenCP: "$punish_name" }, 5]},"punish_name_type" : "机构", "source_data" : /中国/,})解释: 1-"source_data" : /中…...
Android中的单例模式
在Android开发中,单例模式(Singleton Pattern)是一种常用的设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。单例模式在需要控制资源访问、管理共享资源或配置信息的场景下特别有用。在Androi…...
python做游戏好用吗
Python做游戏是完全可以的,而且也非常简单,有一个专门针对游戏开发的平台(模块)—pygame,允许开发人员快速设计游戏而又摆脱了低级语言的束缚,下面我简单介绍一下这个模块的安装和使用: 1、首先…...
常用游戏运行库下载
包含以下资源: DirectX Repair.exe DirectX Repair(Enhanced Edition). vcredist C2013 x64.exe 微软常用运行库合集 下载链接...
(1)CLIP
CLIP 概述1. 训练与推理2. 最终效果与局限性3.后续应用3.1 DALL-E3.2 ActionCLIP3.3 CLIP-Event 概述 CLIP:contrastive language-image pretraining 利用文本的监督信号训练一个迁移能力特别强的视觉模型 传统的视觉模型,人工标注图像,那么…...
MongoDB高可用和分片集群知识
一、MongoDB实现高可用 1. MongoDB复制集(Replication Set) 在实际生产中,MongoDB要实现高可用,以免MongoDB单实例挂了,服务不可用。MongoDB实现高可用是以MongoDB复制集的形式实现,和集群部署概念相同,MongoDB复制集…...
【Python日志功能】一.日志基础与基本配置
文章目录 相关链接第一篇:日志基础与基本配置1 日志的概念与用途2 Python logging 模块介绍3 日志级别4 配置日志格式和输出位置4.1 配置日志格式4.2 配置输出位置 5 实验:基本日志配置和输出实验1:基本日志配置实验2:使用配置文件…...
深圳铨顺宏科技展邀您体验前沿人工智能技术
我们诚挚地邀请您参加即将举行的展会,探索RFID技术在资产与人员管理中的广泛应用。这些展会将为您提供一个深入了解前沿技术和创新解决方案的机会。 东莞台湾名品博览会(东莞台博会)展会时间:9月5日至8日。此次展会展示了来自台湾…...
Lombok:Java开发者的代码简化神器【后端 17】
Lombok:Java开发者的代码简化神器 在Java开发中,我们经常需要编写大量的样板代码,如getter、setter、equals、hashCode、toString等方法。这些代码虽然基础且必要,但往往占据了大量开发时间,且容易在属性变更时引发错误…...
[linux]GCC G++官方源码国内下载地址汇总
【GCC介绍】 GCC(GNU Compiler Collection,GNU编译器套件)是由GNU项目开发的一套编程语言编译器,也是GNU计划的关键部分。它最初作为GNU C Compiler(GNU C语言编译器)出现,但随着时间的推移&…...
部署opengauss5.0.3,细节满满
部署opengauss5.0.3 1.关闭安全服务 修改/etc/selinux/config文件中的“SELINUX”值为“disabled”。临时关闭selinux setenforce 0 查看selinux状态 getenforce2.host配置 [rootcentos79 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 local…...
面试题总结(四) -- STL与算法篇
面试题总结(四) – STL与算法篇 文章目录 面试题总结(四) -- STL与算法篇<1> 请列举 C STL 中常用的容器(如 vector、list、map 等)及其特点。<2> 如何在 C 中使用 STL 算法(如排序、查找等)?<3> 解…...
别再做老好人了,优秀PM都有攻击性!
在职场中,“老好人”似乎是一个自带“善意”的标签,但对于项目经理(PM)而言,这三个字往往意味着内耗、妥协与项目失控。很多PM深陷“讨好型人格”的陷阱,怕得罪客户、怕得罪团队、怕得罪领导,凡…...
别再只比精度了!手把手教你用YOLOv5和v7在自定义数据集上做训练优化
别再只比精度了!手把手教你用YOLOv5和v7在自定义数据集上做训练优化 当你第一次在COCO数据集上跑通YOLOv5的demo时,那种"目标检测原来如此简单"的兴奋感可能还记忆犹新。但当你把模型迁移到自己的零件检测、农作物病害识别或零售商品分类任务时…...
研途灵伴学习专项接口支撑与协议收口复盘
摘要 前面的计划、错题本、复习、状态这些后端模块其实都已经能各自工作了,聊天里的动作按钮也能执行。但是当桌面端真的开始接学习页和聊天动作时,问题就出来了: 数据来源太散,页面要自己拼。动作点完以后,前端只知道…...
PyTorch训练中的retain_graph使用指南:如何避免Saved variables already freed错误
PyTorch中retain_graph的深度解析:从原理到实战避坑指南 在PyTorch的动态图机制中,retain_graph参数就像一位默默无闻的后台管理员,平时很少被提及,但一旦出现问题就会让整个训练流程崩溃。许多开发者在遇到"Saved variable…...
开发实战:asp.net core + ef core 实现动态可扩展的分页方案
统一请求参数先定义一个公共的 QueryParameters 解决这个问题:public class QueryParameters{private const int MaxPageSize 100;private int _pageSize 10;public int PageNumber { get; set; } 1;// 限制最大值,防止前端传一个很大数值把数据库搞崩…...
闲鱼AI客服终极指南:7×24小时自动化值守完整教程
闲鱼AI客服终极指南:724小时自动化值守完整教程 【免费下载链接】XianyuAutoAgent 智能闲鱼客服机器人系统:专为闲鱼平台打造的AI值守解决方案,实现闲鱼平台724小时自动化值守,支持多专家协同决策、智能议价和上下文感知对话。 …...
Word论文写作福音:3分钟搞定APA第7版参考文献格式配置
Word论文写作福音:3分钟搞定APA第7版参考文献格式配置 【免费下载链接】APA-7th-Edition Microsoft Word XSD for generating APA 7th edition references 项目地址: https://gitcode.com/gh_mirrors/ap/APA-7th-Edition 还在为论文参考文献格式发愁吗&#…...
WebRTC实现VoiceAgent智能体
今天给大家介绍使用RTCPilot实现基于WebRTC的voice agent。 RTCpilot是基于c17开发的,跨平台,支持服务集群的WebRTC服务。 什么是voice agent? 一句话定义:实时语音对话AI大模型,跑在 WebRTC 低延迟实时音视频通道上…...
OpenClaw多模型路由策略:混合Phi-3-vision-128k-instruct与文本模型的实践
OpenClaw多模型路由策略:混合Phi-3-vision-128k-instruct与文本模型的实践 1. 为什么需要多模型路由? 去年夏天,我尝试用OpenClaw自动化处理团队的技术文档时,遇到了一个典型问题:当文档中包含大量截图和图表时&…...
Super Qwen Voice World生产环境部署:Docker镜像构建与GPU透传配置
Super Qwen Voice World生产环境部署:Docker镜像构建与GPU透传配置 1. 引言 想象一下,你开发了一个超酷的复古像素风语音设计工具,用户只需要输入文字和语气描述,就能生成各种情绪饱满的AI配音。这个工具在本地测试时运行完美&a…...
