当前位置: 首页 > news >正文

数据结构一:绪论

(一)数据结构的基本概念

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));要包含这个头文件&#xff0c;如果没有这两个&#xff0c;rand()函数会一直生成42这个伪随机数。*/using namespace std;int main() {srand((unsigned int)time(NULL));//种子&#xff0c;…...

优化批处理流程:自定义BatchProcessorUtils的设计与应用

优化批处理流程&#xff1a;自定义BatchProcessorUtils的设计与应用 | 原创作者/编辑&#xff1a;凯哥Java | 分类&#xff1a;个人小工具类 在我们开发过程中&#xff0c;处理大量的数据集是一项常见的任务。特别是在数据库操作、文件处理或者…...

Framebuffer应用编程

目录 前言 LCD操作原理 涉及的 API 函数 open函数 ioctl 函数 mmap 函数 Framebuffer程序分析 源码 1.打开设备 2.获取LCD参数 3.映射Framebuffer 4.描点函数 5.随便画几个点 上机实验 前言 本文介绍LCD的操作原理和涉及到的API函数&#xff0c;分析Framebuffer…...

MongoDB根据字段内容长度查询语句

db.getCollection("qlzx_penalties_business_raw").find({$expr: {$lt: [{ $strLenCP: "$punish_name" }, 5]},"punish_name_type" : "机构", "source_data" : /中国/,})解释&#xff1a; 1-"source_data" : /中…...

Android中的单例模式

在Android开发中&#xff0c;单例模式&#xff08;Singleton Pattern&#xff09;是一种常用的设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点来获取这个实例。单例模式在需要控制资源访问、管理共享资源或配置信息的场景下特别有用。在Androi…...

python做游戏好用吗

Python做游戏是完全可以的&#xff0c;而且也非常简单&#xff0c;有一个专门针对游戏开发的平台&#xff08;模块&#xff09;—pygame&#xff0c;允许开发人员快速设计游戏而又摆脱了低级语言的束缚&#xff0c;下面我简单介绍一下这个模块的安装和使用&#xff1a; 1、首先…...

常用游戏运行库下载

包含以下资源&#xff1a; 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&#xff1a;contrastive language-image pretraining 利用文本的监督信号训练一个迁移能力特别强的视觉模型 传统的视觉模型&#xff0c;人工标注图像&#xff0c;那么…...

MongoDB高可用和分片集群知识

一、MongoDB实现高可用 1. MongoDB复制集(Replication Set) 在实际生产中&#xff0c;MongoDB要实现高可用&#xff0c;以免MongoDB单实例挂了&#xff0c;服务不可用。MongoDB实现高可用是以MongoDB复制集的形式实现&#xff0c;和集群部署概念相同&#xff0c;MongoDB复制集…...

【Python日志功能】一.日志基础与基本配置

文章目录 相关链接第一篇&#xff1a;日志基础与基本配置1 日志的概念与用途2 Python logging 模块介绍3 日志级别4 配置日志格式和输出位置4.1 配置日志格式4.2 配置输出位置 5 实验&#xff1a;基本日志配置和输出实验1&#xff1a;基本日志配置实验2&#xff1a;使用配置文件…...

深圳铨顺宏科技展邀您体验前沿人工智能技术

我们诚挚地邀请您参加即将举行的展会&#xff0c;探索RFID技术在资产与人员管理中的广泛应用。这些展会将为您提供一个深入了解前沿技术和创新解决方案的机会。 东莞台湾名品博览会&#xff08;东莞台博会&#xff09;展会时间&#xff1a;9月5日至8日。此次展会展示了来自台湾…...

Lombok:Java开发者的代码简化神器【后端 17】

Lombok&#xff1a;Java开发者的代码简化神器 在Java开发中&#xff0c;我们经常需要编写大量的样板代码&#xff0c;如getter、setter、equals、hashCode、toString等方法。这些代码虽然基础且必要&#xff0c;但往往占据了大量开发时间&#xff0c;且容易在属性变更时引发错误…...

[linux]GCC G++官方源码国内下载地址汇总

【GCC介绍】 GCC&#xff08;GNU Compiler Collection&#xff0c;GNU编译器套件&#xff09;是由GNU项目开发的一套编程语言编译器&#xff0c;也是GNU计划的关键部分。它最初作为GNU C Compiler&#xff08;GNU C语言编译器&#xff09;出现&#xff0c;但随着时间的推移&…...

部署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 中常用的容器&#xff08;如 vector、list、map 等&#xff09;及其特点。<2> 如何在 C 中使用 STL 算法&#xff08;如排序、查找等&#xff09;&#xff1f;<3> 解…...

别再做老好人了,优秀PM都有攻击性!

在职场中&#xff0c;“老好人”似乎是一个自带“善意”的标签&#xff0c;但对于项目经理&#xff08;PM&#xff09;而言&#xff0c;这三个字往往意味着内耗、妥协与项目失控。很多PM深陷“讨好型人格”的陷阱&#xff0c;怕得罪客户、怕得罪团队、怕得罪领导&#xff0c;凡…...

别再只比精度了!手把手教你用YOLOv5和v7在自定义数据集上做训练优化

别再只比精度了&#xff01;手把手教你用YOLOv5和v7在自定义数据集上做训练优化 当你第一次在COCO数据集上跑通YOLOv5的demo时&#xff0c;那种"目标检测原来如此简单"的兴奋感可能还记忆犹新。但当你把模型迁移到自己的零件检测、农作物病害识别或零售商品分类任务时…...

研途灵伴学习专项接口支撑与协议收口复盘

摘要 前面的计划、错题本、复习、状态这些后端模块其实都已经能各自工作了&#xff0c;聊天里的动作按钮也能执行。但是当桌面端真的开始接学习页和聊天动作时&#xff0c;问题就出来了&#xff1a; 数据来源太散&#xff0c;页面要自己拼。动作点完以后&#xff0c;前端只知道…...

PyTorch训练中的retain_graph使用指南:如何避免Saved variables already freed错误

PyTorch中retain_graph的深度解析&#xff1a;从原理到实战避坑指南 在PyTorch的动态图机制中&#xff0c;retain_graph参数就像一位默默无闻的后台管理员&#xff0c;平时很少被提及&#xff0c;但一旦出现问题就会让整个训练流程崩溃。许多开发者在遇到"Saved variable…...

开发实战:asp.net core + ef core 实现动态可扩展的分页方案

统一请求参数先定义一个公共的 QueryParameters 解决这个问题&#xff1a;public class QueryParameters{private const int MaxPageSize 100;private int _pageSize 10;public int PageNumber { get; set; } 1;// 限制最大值&#xff0c;防止前端传一个很大数值把数据库搞崩…...

闲鱼AI客服终极指南:7×24小时自动化值守完整教程

闲鱼AI客服终极指南&#xff1a;724小时自动化值守完整教程 【免费下载链接】XianyuAutoAgent 智能闲鱼客服机器人系统&#xff1a;专为闲鱼平台打造的AI值守解决方案&#xff0c;实现闲鱼平台724小时自动化值守&#xff0c;支持多专家协同决策、智能议价和上下文感知对话。 …...

Word论文写作福音:3分钟搞定APA第7版参考文献格式配置

Word论文写作福音&#xff1a;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开发的&#xff0c;跨平台&#xff0c;支持服务集群的WebRTC服务。 什么是voice agent&#xff1f; 一句话定义&#xff1a;实时语音对话AI大模型&#xff0c;跑在 WebRTC 低延迟实时音视频通道上…...

OpenClaw多模型路由策略:混合Phi-3-vision-128k-instruct与文本模型的实践

OpenClaw多模型路由策略&#xff1a;混合Phi-3-vision-128k-instruct与文本模型的实践 1. 为什么需要多模型路由&#xff1f; 去年夏天&#xff0c;我尝试用OpenClaw自动化处理团队的技术文档时&#xff0c;遇到了一个典型问题&#xff1a;当文档中包含大量截图和图表时&…...

Super Qwen Voice World生产环境部署:Docker镜像构建与GPU透传配置

Super Qwen Voice World生产环境部署&#xff1a;Docker镜像构建与GPU透传配置 1. 引言 想象一下&#xff0c;你开发了一个超酷的复古像素风语音设计工具&#xff0c;用户只需要输入文字和语气描述&#xff0c;就能生成各种情绪饱满的AI配音。这个工具在本地测试时运行完美&a…...