【数据结构-C语言】绪论
文章目录
- 一、前言
- 二、基本概念和术语
- 2.1 数据元素、数据项和数据对象
- 2.2 数据结构
- 2.2.1 逻辑结构
- 2.2.2 存储结构
- 2.3 时间复杂度
一、前言
数据结构部分是根据严蔚敏老师的《数据结构-C语言版第2版》书中内容整理的。
二、基本概念和术语
2.1 数据元素、数据项和数据对象
数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。
数据元素:是数据的基本单位。也称为元素、记录等。数据元素用于完整的描述一个对象。
数据对象:是性质相同的数据元素的集合,是数据的一个子集。
2.2 数据结构
数据结构:是相互之间存在一种或者多种特定关系的数据元素的集合。数据结构是带“结构”的数据元素的集合,结构就是指数据元素之间存在的关系。
2.2.1 逻辑结构
四类基本结构:集合结构(除了“属于同一集合”的关系外,无其他关系)、线性结构(一对一)、树形结构(一对多)、图形结构(多对多)。

线性结构:线性表、栈和队列(有特殊限制的线性表)、字符串、数组(线性表的推广)、广义表。
非线性表:树、二叉树、有向图、无向图。
2.2.2 存储结构
数据元素在计算机中有两种基本的存储结构,分别是顺序存储和链式存储。
顺序存储:借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。通常使用数组类型来描述。所有元素依次存放在一片连续的存储空间中。
链式存储:需要给每个节点附加指针字段,用于存放后续元素的存储地址。所以通常要借助于指针类型来描述。
2.3 时间复杂度
定理:在计算时间复杂度时,可以忽略所有低次幂项和最高次幂的系数,这样可以简化算法分析,也体现出了增长率的含义。
一般都是用最坏时间复杂度来计算。
void Func1(int N)
{int count = 0;for (int i = 0; i < N; ++i) // 第一段{for (int j = 0; j < N; ++j){++count;}}for (int k = 0; k < 2 * N; ++k) // 第二段{++count;}int M = 10;while (M--) // 第三段{++count;}printf("%d\n", count);
}
最坏情况:F(N) = N² + 2 * N + 10,此时,我们要忽略低次幂项和常数以及最高次幂的系数这样就得到了N²,所以Func1的时间复杂度为:O(N²)。

相关文章:
【数据结构-C语言】绪论
文章目录 一、前言二、基本概念和术语2.1 数据元素、数据项和数据对象2.2 数据结构2.2.1 逻辑结构2.2.2 存储结构 2.3 时间复杂度 一、前言 数据结构部分是根据严蔚敏老师的《数据结构-C语言版第2版》书中内容整理的。 二、基本概念和术语 2.1 数据元素、数据项和数据对象 …...
java poi Excel 文件导入导出常见错误及解决方案
在使用 Apache POI 进行 Excel 文件的导入导出操作时,可能会遇到各种问题。以下是一些常见的错误及其解决方案: 一、文件格式相关问题 1. 文件格式不兼容 问题描述:尝试使用 HSSFWorkbook 读取 .xlsx 文件,或者使用 XSSFWorkbo…...
深入浅出DeepSeek LLM 以长远主义拓展开源语言模型
深入浅出地讲解DeepSeek LLM 以长远主义拓展开源语言模型 🌟 1. 什么是 DeepSeek LLM? 大家想象一下,你在游戏里要打造一个超级英雄角色,选择最强的装备、技能点和升级策略。那么,DeepSeek LLM 就是 AI 界的“超级英雄…...
【Leetcode 每日一题】59. 螺旋矩阵 II
问题背景 给你一个正整数 n n n,生成一个包含 1 1 1 到 n 2 n ^ 2 n2 所有元素,且元素按顺时针顺序螺旋排列的 n n n \times n nn 正方形矩阵 m a t r i x matrix matrix。 数据约束 1 n 20 1 \times n \times 20 1n20 解题过程 定义方向数组…...
回退 android studio emulator 的版本
前情提要 最近用 frida 需要一个完全跑 arm64 的手机 os,因为雷电实时转义 arm 到 x64 的方案本质上还是 x64,会导致 frida 有 bug。查了一下有帖子说 android studio 自带的模拟器支持直接跑 arm64 的镜像 (Other Images) 直接跑跑不通,调…...
数据资产的管理与价值释放
引言:从 “黑金” 到 “数据” 的文明跃迁 在探讨数字资产的未来之前,我们不妨先回顾一下黄金在人类历史长河中的角色。黄金,这种闪耀着独特光芒的金属,从远古时代起就与人类文明紧密相连。在古埃及,黄金被视为太阳神…...
部署夜景增强模型Learning to See in the Dark以及gradio UI编程方法
前面我们已经把Learning to See in the Dark的paper和原理进行了解读,现在把Learning to See in the Dark(后续简称SID模型)部署看一下效果。 这篇文章选择的部署方式是gradio 本地pytorch直接推理。先看一下效果: 对单个文件进…...
【报错解决】MySQL报错:sql_mode=only_full_group_by
文章目录 报错信息 DataGrip 报错还原Navicat 报错还原 报错原因解决方案 查看当前 sql mode方案一:临时解决方案二:永久解决方案三:使用 any_value() 或 group_concat()方案四:调整实现思路,避开 GROUP BY 使用 我…...
【大数据技术】用户行为日志分析(python+hadoop+mapreduce+yarn+hive)
用户行为日志分析(pythonhadoopmapreduceyarnhive) 搭建完全分布式高可用大数据集群(VMwareCentOSFinalShell) 搭建完全分布式高可用大数据集群(HadoopMapReduceYarn) 本机PyCharm远程连接虚拟机Python …...
[Day 16]螺旋遍历二维数组
今天我们看一下力扣上的这个题目:146.螺旋遍历二维数组 题目描述: 给定一个二维数组 array,请返回「螺旋遍历」该数组的结果。 螺旋遍历:从左上角开始,按照 向右、向下、向左、向上 的顺序 依次 提取元素,…...
大模型的底层逻辑及Transformer架构
一、大模型的底层逻辑 1.数据驱动 大模型依赖海量的数据进行训练,数据的质量和数量直接影响模型的性能。通过大量的数据,模型能够学习到丰富的模式和规律,从而更好地处理各种任务。 2.深度学习架构 大模型基于深度学习技术,通常采用多层神经网络进行特征学习与抽象。其中…...
数据结构-基础
1、概念: 程序 数据结构 算法 2、程序的好坏 可读性,稳定性,扩展性,时间复杂度,空间复杂度。 3、数据结构 是指存储、组织数据的方式,以便高效地进行访问和修改。通过选择适当的数据结构, 能…...
SystemUI中NavigationBar分析
需求 SystemUI是一个与系统组件显示紧密相关的应用,包含快捷中心、消息通知、状态栏、导航栏、任务中心等诸多模块,本文介绍NavigationBar模块。SystemUI源码位于/frameworks/base/packages/SystemUI,Android13平台。NavigationBar显示如下&…...
MySQL的底层原理与架构
前言 了解MySQL的架构和原理对于很多的后续很多的操作会有很大的帮助与理解。并且很多知识都与底层架构相关联。 了解MySQL架构 通过上面的架构图可以得知,Server层中主要由 连接器、查询缓存、解析器/分析器、优化器、执行器 几部分组成的,下面将主要…...
三极管的截止、放大、饱和区
三极管的几个区,都有什么用: 截止区:晶体管不导通,用于开关电路的“关”状态。 放大区:晶体管用于信号放大,集电极电流与基极电流成正比。 饱和区:晶体管完全导通,用于开关电路的“…...
2025-2-7-算法学习(一) 动态规划-习题1 300.最长递增子序列
文章目录 算法学习(一) 动态规划-习题1 300.最长递增子序列(1)题目(2)举例:(3)提示(4)分析(5)动态规划代码:&a…...
学习日记-250207
一.论文 1.Prompt Learning for News Recommendation 任务不一致(LLM与实际任务)产生prompt提示。 Prompt Learning for News Recommendation 论文阅读 SIGIR2023-CSDN博客 2.GPT4Rec: A Generative Framework for Personalized Recommendation and…...
【Block总结】PSA,金字塔挤压注意力,解决传统注意力机制在捕获多尺度特征时的局限性
论文信息 标题: EPSANet: An Efficient Pyramid Squeeze Attention Block on Convolutional Neural Network论文链接: arXivGitHub链接: https://github.com/murufeng/EPSANet 创新点 EPSANet提出了一种新颖的金字塔挤压注意力(PSA)模块,旨…...
代码随想录算法训练营第三十一天| 回溯算法04
491. 递增子序列 题目: 代码随想录 视频讲解:回溯算法精讲,树层去重与树枝去重 | LeetCode:491.递增子序列_哔哩哔哩_bilibili 这题需要注意的点: 1. path长度在2以上才放入最终结果 2. 需要记录已经使用过的数字&am…...
pycharm集成通义灵码应用
在pycharm中安装通义灵码 1、打开files-settings 2、选中plugins-搜索”TONGYI Lingma“,点击安装 3.安装完成后在pycharm的右侧就有通义灵码的标签 4、登录账号 5、查看代码区域代码,每一个方法前面都多了通义灵码的标识,可以直接选择…...
打开软件就弹出D3DCompiler_47.dll错误 免费下载修复方法分享
在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…...
RWKV7-1.5B-g1a作品分享:多轮追问下保持主题聚焦的能力验证
RWKV7-1.5B-g1a作品分享:多轮追问下保持主题聚焦的能力验证 1. 模型简介与测试背景 rwkv7-1.5B-g1a是基于RWKV-7架构的多语言文本生成模型,特别适合基础问答、文案续写、简短总结和轻量中文对话场景。本次测试将重点验证该模型在多轮对话中保持主题聚焦…...
OpenBot开源代码平台:可视化编程与AI模块开发教程
OpenBot开源代码平台:可视化编程与AI模块开发教程 【免费下载链接】OpenBot OpenBot leverages smartphones as brains for low-cost robots. We have designed a small electric vehicle that costs about $50 and serves as a robot body. Our software stack for…...
PROJECT MOGFACE技术解析:深入理解LSTM在序列建模中的替代与增强
PROJECT MOGFACE技术解析:深入理解LSTM在序列建模中的替代与增强 1. 引言 如果你在几年前接触过自然语言处理或者语音识别,那么“LSTM”这个词对你来说一定不陌生。它曾经是处理序列数据的黄金标准,从机器翻译到语音合成,几乎无…...
比迪丽FLUX.1效果对比:相比SDXL,面部结构准确率提升18.7%
比迪丽FLUX.1效果对比:相比SDXL,面部结构准确率提升18.7% 1. 引言:当动漫角色遇上新一代AI绘画引擎 如果你是一位《龙珠》的粉丝,或者热衷于用AI生成动漫角色,那么“比迪丽”这个名字你一定不陌生。作为悟饭的妻子&a…...
多维对比:2026 年主流 AI 证书的含金量权重与选择策略
随着生成式 AI 技术的全面渗透,企业对 AI 人才的需求已从 “储备型” 转向 “实战型”。2026 年 AI 证书市场迎来爆发式增长,其中 CAIE注册人工智能工程师认证与国内外科技大厂生态认证成为职场人、应届生及转型者的核心选择方向。盲目跟风考证易导致 “…...
PowerPaint-V1 Gradio与VSCode集成开发:图像修复插件开发指南
PowerPaint-V1 Gradio与VSCode集成开发:图像修复插件开发指南 1. 开发环境准备 开始之前,我们需要准备好开发环境。VSCode作为代码编辑器,配合Python环境,可以让你更高效地开发PowerPaint-V1的图像修复插件。 首先确保你的系统…...
SenseVoice语音识别镜像深度体验:自动语言检测+高效推理,实测效果惊艳
SenseVoice语音识别镜像深度体验:自动语言检测高效推理,实测效果惊艳 1. 开箱即用的语音识别体验 当我第一次启动SenseVoice语音识别镜像时,最直观的感受就是"快"。这个基于ONNX量化的多语言语音识别服务,从启动到可用…...
如何在Windows 11中恢复高效工作流:ExplorerPatcher全面配置指南
如何在Windows 11中恢复高效工作流:ExplorerPatcher全面配置指南 【免费下载链接】ExplorerPatcher 提升Windows操作系统下的工作环境 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher Windows 11带来了现代化的界面设计,但许…...
C++的std--ranges缓存性能
C的std::ranges缓存性能探析 在现代C编程中,std::ranges作为C20引入的重要特性,为算法和视图操作提供了更简洁、高效的表达方式。其性能表现,尤其是缓存友好性,直接影响实际应用的效率。本文将从多个角度探讨std::ranges的缓存性…...
