当前位置: 首页 > 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> 解…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...